CI: TEMPORARILY Allow tests to run on any branch, for debugging purposes #226
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
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources | |
# TODO: Line 48, enable pytest --doctest-modules | |
name: Tests | |
on: | |
push: | |
pull_request: | |
branches: [ main ] | |
permissions: | |
contents: read # to fetch code (actions/checkout) | |
jobs: | |
Lint_Python: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- run: pip install --user ruff | |
- run: ruff --output-format=github --select="E,F,PLC,PLE,UP,W,YTT" --ignore="E721,PLC1901,S101,UP031" --target-version=py38 . | |
Tests: | |
needs: Lint_Python # Lint_Python takes ~5 seconds, so wait for it to pass before running the full matrix of tests. | |
strategy: | |
fail-fast: false | |
max-parallel: 15 | |
matrix: | |
node: [16.x, 18.x, 20.x] | |
python: ["3.8", "3.11", "3.12"] | |
os: [macos-latest, ubuntu-latest, windows-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Use Node.js ${{ matrix.node }} | |
uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- name: Use Python ${{ matrix.python }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python }} | |
env: | |
PYTHON_VERSION: ${{ matrix.python }} # Why do this? | |
- name: Install Dependencies | |
run: | | |
npm install --no-progress | |
python -m pip install pytest | |
- name: Set Windows environment | |
if: startsWith(matrix.os, 'windows') | |
run: | | |
echo 'GYP_MSVS_VERSION=2015' >> $Env:GITHUB_ENV | |
echo 'GYP_MSVS_OVERRIDE_PATH=C:\\Dummy' >> $Env:GITHUB_ENV | |
- name: Run Python tests | |
run: python -m pytest | |
# - name: Run doctests with pytest | |
# run: python -m pytest --doctest-modules | |
- name: Environment Information | |
run: npx envinfo | |
- name: Run Node tests (macOS or Linux) | |
if: runner.os != 'Windows' | |
shell: bash | |
run: npm test --python="${pythonLocation}/python" | |
- name: Run tests (Windows) | |
if: runner.os == 'Windows' | |
shell: pwsh | |
run: npm run test --python="${env:pythonLocation}\\python.exe" |