CI Improvements #1683
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: Main | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| jobs: | |
| build-test: | |
| name: Build and Test | |
| runs-on: ${{ matrix.os.instance }} | |
| timeout-minutes: 15 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: | |
| - category: windows | |
| platform: x86 | |
| instance: windows-latest | |
| suffix: -windows-x86-none | |
| - category: windows | |
| platform: x64 | |
| instance: windows-latest | |
| suffix: -windows-x86_64-none | |
| - category: ubuntu | |
| platform: x64 | |
| instance: ubuntu-22.04 | |
| suffix: "" | |
| - category: ubuntu | |
| platform: arm64 | |
| instance: ubuntu-22.04-arm | |
| suffix: "" | |
| - category: macos | |
| platform: x64 | |
| instance: macos-15 | |
| suffix: -macos-x86_64-none | |
| - category: macos | |
| platform: arm64 | |
| instance: macos-15 | |
| suffix: -macos-aarch64-none | |
| python: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| exclude: | |
| # Fails with initfs_encoding error | |
| - os: | |
| category: windows | |
| platform: x86 | |
| python: "3.10" | |
| env: | |
| NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| # Use main until support for architecture lands | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@main | |
| with: | |
| dotnet-version: '10.0' | |
| architecture: ${{ matrix.os.platform }} | |
| - name: Install Mono | |
| uses: ./.github/actions/install-mono | |
| with: | |
| arch: ${{ matrix.os.platform }} | |
| - name: Set up Python ${{ matrix.python }} | |
| uses: astral-sh/setup-uv@v7 | |
| with: | |
| python-version: cpython-${{ matrix.python }}${{ matrix.os.suffix }} | |
| cache-python: true | |
| activate-environment: true | |
| enable-cache: true | |
| - run: dotnet restore | |
| - name: Synchronize the virtual environment | |
| run: uv sync --managed-python | |
| - name: Embedding tests (Mono/.NET Framework) | |
| if: always() | |
| run: dotnet test --runtime any-${{ matrix.os.platform }} --framework net472 --logger "console;verbosity=detailed" src/embed_tests/ | |
| env: | |
| MONO_THREADS_SUSPEND: preemptive # https://github.com/mono/mono/issues/21466 | |
| - name: Embedding tests (.NET Core) | |
| if: always() | |
| run: dotnet test --runtime any-${{ matrix.os.platform }} --framework net10.0 --logger "console;verbosity=detailed" src/embed_tests/ | |
| - name: Python Tests (Mono) | |
| if: always() | |
| run: pytest --runtime mono | |
| - name: Python Tests (.NET Core) | |
| if: always() | |
| run: pytest --runtime coreclr | |
| - name: Python Tests (.NET Framework) | |
| if: ${{ matrix.os.category == 'windows' }} | |
| run: pytest --runtime netfx | |
| - name: Python tests run from .NET | |
| # For some reason, it won't find pytest on the Windows + 3.10 | |
| # combination, which hints that it does not handle the venv properly in | |
| # this combination. | |
| if: ${{ matrix.os.category != 'windows' || matrix.python != '3.10' }} | |
| run: dotnet test --runtime any-${{ matrix.os.platform }} src/python_tests_runner/ |