Platform-specific vsix #157
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: PR Validation | |
on: | |
pull_request: | |
env: | |
NODE_VERSION: 18.17.1 | |
TEST_RESULTS_DIRECTORY: . | |
# Force a path with spaces and unicode chars to test extension works in these scenarios | |
special-working-directory: './π π' | |
special-working-directory-relative: 'π π' | |
jobs: | |
build-vsix: | |
name: Create VSIX | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build VSIX | |
uses: ./.github/actions/build-vsix | |
with: | |
node_version: ${{ env.NODE_VERSION}} | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Lint | |
uses: ./.github/actions/lint | |
with: | |
node_version: ${{ env.NODE_VERSION }} | |
tests: | |
name: Tests | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
working-directory: ${{ env.special-working-directory }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python: ['3.7', '3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
path: ${{ env.special-working-directory-relative }} | |
# Install bundled libs using 3.7 even though you test it on other versions. | |
- name: Use Python 3.7 | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.7' | |
- name: Update pip, install pipx and install wheel | |
run: python -m pip install -U pip pipx wheel | |
shell: bash | |
# This will install libraries to a target directory. | |
- name: Install bundled python libraries | |
run: pipx run nox --session install_bundled_libs | |
shell: bash | |
- name: Install Node | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
cache: 'npm' | |
cache-dependency-path: ${{ env.special-working-directory-relative }}/package-lock.json | |
- name: Install dependencies (npm ci) | |
run: npm ci | |
# Now that the bundle is installed to target using python 3.7 | |
# switch back the python we want to test with | |
- name: Use Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
# The new python may not have nox so install it again | |
- name: Update pip, install pipx and install wheel (again) | |
run: python -m pip install -U pip pipx wheel | |
shell: bash | |
- name: Start xvfb on Linux | |
run: | | |
/usr/bin/Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 & | |
echo "DISPLAY=:99" >> $GITHUB_ENV | |
echo ">>> Started xvfb" | |
if: ${{ runner.os }} == 'Linux' | |
- name: Run tests | |
run: pipx run nox --session tests | |
shell: bash | |
env: | |
DISPLAY: ${{ env.DISPLAY }} |