fix: migrates macOS-13 to macOS-15-intel #15
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: CI | |
| on: | |
| push: | |
| branches: ["main", "master"] | |
| pull_request: | |
| branches: ["main", "master"] | |
| permissions: | |
| contents: read | |
| actions: read | |
| checks: write | |
| jobs: | |
| tests: | |
| name: ${{ matrix.session }} ${{ matrix.python }} / ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| # Linting and type checking (only on latest Python/Ubuntu) | |
| - { python: "3.13", os: "ubuntu-latest", session: "lint" } | |
| # Unit tests across Python versions and OS | |
| - { python: "3.13", os: "ubuntu-latest", session: "unit" } | |
| - { python: "3.12", os: "ubuntu-latest", session: "unit" } | |
| - { python: "3.11", os: "ubuntu-latest", session: "unit" } | |
| - { python: "3.13", os: "windows-latest", session: "unit" } | |
| - { python: "3.12", os: "windows-latest", session: "unit" } | |
| - { python: "3.11", os: "windows-latest", session: "unit" } | |
| - { python: "3.13", os: "macos-latest", session: "unit" } | |
| - { python: "3.12", os: "macos-latest", session: "unit" } | |
| - { python: "3.11", os: "macos-latest", session: "unit" } | |
| env: | |
| NOXSESSION: ${{ matrix.session }} | |
| FORCE_COLOR: "1" | |
| steps: | |
| - name: Check out the repository | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| - name: Set up Python ${{ matrix.python }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python }} | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "0.8.3" | |
| enable-cache: true | |
| - name: Install nox | |
| run: uv tool install nox | |
| - name: Run nox | |
| run: nox --python=${{ matrix.python }} | |
| - name: Upload coverage data | |
| if: matrix.session == 'unit' && matrix.python == '3.13' && matrix.os == 'ubuntu-latest' | |
| uses: actions/upload-artifact@v6 | |
| with: | |
| name: coverage-data | |
| path: .coverage | |
| include-hidden-files: true | |
| coverage: | |
| runs-on: ubuntu-latest | |
| needs: tests | |
| if: needs.tests.result == 'success' | |
| steps: | |
| - name: Check out the repository | |
| uses: actions/checkout@v6 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: llvm-tools-preview | |
| - name: Set up Python 3.13 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| version: "0.8.3" | |
| enable-cache: true | |
| - name: Install nox | |
| run: uv tool install nox | |
| - name: Download coverage data | |
| uses: actions/download-artifact@v7 | |
| with: | |
| name: coverage-data | |
| - name: Combine coverage data and display human readable report | |
| run: nox --session=coverage | |
| - name: Create Python coverage report | |
| run: nox --session=coverage -- xml | |
| # Rust coverage | |
| - name: Install cargo-llvm-cov | |
| uses: taiki-e/install-action@cargo-llvm-cov | |
| - name: Generate Rust coverage | |
| run: cargo llvm-cov --manifest-path crates/agon-core/Cargo.toml --lcov --output-path rust-coverage.lcov | |
| - name: Upload Python coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: coverage.xml | |
| flags: python | |
| name: agon-python | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| verbose: true | |
| - name: Upload Rust coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: rust-coverage.lcov | |
| flags: rust | |
| name: agon-rust | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| verbose: true |