Repository navigation
GitHub Actions: disable pip's version check #69 #118
Workflow file for this run
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
| # This workflow will install Python dependencies, run tests and lint with a variety of Python versions | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: Test | |
| on: [push, pull_request] | |
| env: | |
| # E.g. setup-python with Python 3.8 on macOS (old pip): its "new release of pip" notice became an error annotation | |
| PIP_DISABLE_PIP_VERSION_CHECK: "1" | |
| jobs: | |
| test: | |
| strategy: | |
| fail-fast: false # To see all versions that fail. | |
| matrix: | |
| os: ["ubuntu", "windows", "macos"] | |
| python: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12", "3.13", "3.14"] # https://devguide.python.org/versions/#versions | |
| exclude: | |
| - os: "macos" | |
| python: "3.7" # Prevent "The version '3.7' with architecture 'arm64' was not found for macOS 14.4.1" | |
| - os: "ubuntu" | |
| python: "3.7" # Python 3.7 is not available in ubuntu-latest i.e. version 24.04 | |
| include: | |
| - os: "windows-arm64" | |
| runner: "windows-11-arm" # Python for Windows ARM64 is available from 3.11 | |
| python: "3.12" | |
| runs-on: ${{ matrix.runner || format('{0}-latest', matrix.os) }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Python ${{ matrix.python }} | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| cache: 'pip' | |
| - name: Prepare environment | |
| run: | | |
| python -m pip install --upgrade pip | |
| - run: make depend | |
| - run: make test | |
| - run: make test-fast-flatbuffers-builder # experimental; each object is verified against the reference | |
| - run: make test-flatbuffers-codegen # experimental; each object is verified against the reference | |
| # Sync variant of the library (make depend-sync; used instead of the standard one): runs the Sync tests, except those | |
| # needing a Sync server (skipped; the GitLab CI runs them). One Python version per OS is enough here. | |
| test-sync: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: ["ubuntu", "windows", "macos"] | |
| include: | |
| - os: "windows-arm64" | |
| runner: "windows-11-arm" | |
| runs-on: ${{ matrix.runner || format('{0}-latest', matrix.os) }} | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Set up Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: "3.12" | |
| cache: 'pip' | |
| - name: Prepare environment | |
| run: | | |
| python -m pip install --upgrade pip | |
| - run: make depend-sync | |
| - run: make test | |
| env: | |
| OBX_TEST_REQUIRE_SYNC: "1" # Fail instead of skipping all Sync tests if the Sync library is not used |