INTPYTHON-757 Force usage of cmake 3 on MacOS GHA runners #1639
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
| name: Python Tests | |
| on: | |
| push: | |
| branches: ["main"] | |
| pull_request: | |
| concurrency: | |
| group: tests-${{ github.ref }} | |
| cancel-in-progress: true | |
| defaults: | |
| run: | |
| working-directory: ./bindings/python | |
| shell: bash -eux {0} | |
| jobs: | |
| lint: | |
| name: lint | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-python@v6 | |
| - name: Install Deps | |
| run: | | |
| python -m pip install rust-just uv | |
| - name: Run linter | |
| run: just lint | |
| build: | |
| # supercharge/mongodb-github-action requires containers so we don't test other platforms | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
| python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.13t"] | |
| fail-fast: false | |
| name: CPython ${{ matrix.python-version }}-${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| cache: 'pip' | |
| cache-dependency-path: '**/pyproject.toml' | |
| - name: Set up env | |
| run: | | |
| echo "LIBBSON_INSTALL_DIR=$PWD/libbson" >> $GITHUB_ENV | |
| echo "LD_LIBRARY_PATH=$PWD/libbson/lib" >> $GITHUB_ENV | |
| - name: Start MongoDB on Linux | |
| if: ${{ startsWith(runner.os, 'Linux') }} | |
| uses: supercharge/mongodb-github-action@90004df786821b6308fb02299e5835d0dae05d0d # 1.12.0 | |
| with: | |
| mongodb-version: 4.4 | |
| mongodb-replica-set: test-rs | |
| - name: Install CMake 3 on MacOS | |
| # libbson requires cmake 3, and cmake 4 is now the default on the GHA runners. | |
| if: ${{ startsWith(runner.os, 'macOS') }} | |
| run: | | |
| pipx install "cmake>=3.15,<4" | |
| - name: Start MongoDB on MacOS | |
| if: ${{ startsWith(runner.os, 'macOS') }} | |
| run: | | |
| brew tap mongodb/brew | |
| brew update | |
| brew install [email protected] | |
| mkdir data | |
| mongod --fork --dbpath=$(pwd)/data --logpath=$PWD/mongo.log | |
| # Install pkg-config | |
| brew install pkg-config | |
| - name: Start MongoDB on Windows | |
| if: ${{ startsWith(runner.os, 'Windows') }} | |
| shell: powershell | |
| run: | | |
| mkdir data | |
| mongod --remove | |
| mongod --install --dbpath=$(pwd)/data --logpath=$PWD/mongo.log | |
| net start MongoDB | |
| - name: Install Deps | |
| run: | | |
| python -m pip install rust-just uv | |
| - name: Install libbson | |
| run: just build-libbson | |
| - name: Ensure imports with no test deps | |
| run: just import-check | |
| - name: Run the tests | |
| if: ${{ ! endsWith(matrix.python-version, 't') }} | |
| env: | |
| UV_PYTHON: ${{matrix.python-version}} | |
| run: just test | |
| - name: Run the tests with no optional deps | |
| env: | |
| UV_PYTHON: ${{matrix.python-version}} | |
| run: just test-no-optional | |
| bson2: | |
| name: bson2 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-python@v6 | |
| - name: Install Deps | |
| run: | | |
| python -m pip install rust-just uv | |
| - name: Set up env | |
| run: | | |
| echo "LIBBSON_INSTALL_DIR=$PWD/libbson" >> $GITHUB_ENV | |
| echo "LD_LIBRARY_PATH=$PWD/libbson/lib" >> $GITHUB_ENV | |
| echo "LIBBSON_VERSION=2.0.1" >> $GITHUB_ENV | |
| - name: Install libbson | |
| run: just build-libbson | |
| - name: Ensure imports with no test deps | |
| run: just import-check | |
| - name: Start MongoDB | |
| if: ${{ startsWith(runner.os, 'Linux') }} | |
| uses: supercharge/mongodb-github-action@90004df786821b6308fb02299e5835d0dae05d0d # 1.12.0 | |
| with: | |
| mongodb-version: 4.4 | |
| mongodb-replica-set: test-rs | |
| - name: Run the tests | |
| run: just test | |
| docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.9 | |
| cache: 'pip' | |
| cache-dependency-path: '**/pyproject.toml' | |
| - name: Install Deps | |
| run: | | |
| python -m pip install rust-just uv | |
| - name: Build docs | |
| run: just docs | |
| - name: Run linkcheck | |
| run: just docs-linkcheck | |
| test_minimum: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@v5 | |
| with: | |
| persist-credentials: false | |
| - name: Setup Python | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: 3.9 | |
| cache: 'pip' | |
| cache-dependency-path: '**/pyproject.toml' | |
| - name: Install Deps | |
| run: | | |
| python -m pip install uv rust-just | |
| - name: Set up env | |
| run: | | |
| echo "LIBBSON_INSTALL_DIR=$PWD/libbson" >> $GITHUB_ENV | |
| echo "LD_LIBRARY_PATH=$PWD/libbson/lib" >> $GITHUB_ENV | |
| - name: Install libbson | |
| run: just build-libbson | |
| - name: Run tests | |
| shell: bash | |
| run: | | |
| uv venv | |
| source .venv/bin/activate | |
| uv pip install -e ".[test]" --resolution=lowest-direct | |
| pytest |