CI: Verify on Python 3.13 and 3.14 #178
This file contains hidden or 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: Tests | |
| on: | |
| push: | |
| branches: [ main ] | |
| pull_request: | |
| branches: [ main ] | |
| # Allow job to be triggered manually. | |
| workflow_dispatch: | |
| # Cancel in-progress jobs when pushing to the same branch. | |
| concurrency: | |
| cancel-in-progress: true | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| jobs: | |
| tests: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ["ubuntu-latest"] | |
| python-version: | |
| - "3.9" | |
| - "3.10" | |
| - "3.11" | |
| - "3.12" | |
| - "3.13" | |
| - "3.14" | |
| include: | |
| - os: "macos-latest" | |
| python-version: "3.11" | |
| #- os: "windows-latest" | |
| # python-version: "3.11" | |
| env: | |
| OS: ${{ matrix.os }} | |
| PYTHON: ${{ matrix.python-version }} | |
| name: Python ${{ matrix.python-version }} on OS ${{ matrix.os }} | |
| steps: | |
| - name: Acquire sources | |
| uses: actions/checkout@v3 | |
| with: | |
| fetch-depth: 0 | |
| - name: Display Docker version | |
| if: runner.os == 'Linux' | |
| run: | | |
| docker version | |
| - name: Install Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| architecture: x64 | |
| cache: 'pip' | |
| cache-dependency-path: 'pyproject.toml' | |
| - name: Install Node.js | |
| uses: actions/setup-node@v3 | |
| with: | |
| node-version: 18 | |
| cache: 'npm' | |
| cache-dependency-path: 'package.json' | |
| - name: Set up project | |
| run: | | |
| # Install package in editable mode. | |
| pip install --upgrade versioningit wheel | |
| pip install --upgrade --editable='.[test,develop]' | |
| # TODO: This command should write a `package.json`, then invoke `npm install`. | |
| node-blue setup | |
| # TODO: Refactor to `node-blue setup`, see above. | |
| npm install | |
| - name: Check code style | |
| if: ${{ matrix.python-version != '3.9' }} | |
| run: | | |
| poe lint | |
| - name: Run tests | |
| run: | | |
| poe test | |
| - name: Upload coverage to Codecov | |
| if: false | |
| uses: codecov/codecov-action@v3 | |
| with: | |
| files: ./coverage.xml | |
| flags: unittests | |
| env_vars: OS,PYTHON | |
| name: codecov-umbrella | |
| fail_ci_if_error: false |