X Tutup
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: # Disabled for now, will require some work (#2653) # # - category: windows # platform: x86 # instance: windows-latest - category: windows platform: x64 instance: windows-latest - category: ubuntu platform: x64 instance: ubuntu-22.04 - category: ubuntu platform: arm64 instance: ubuntu-22.04-arm - category: macos platform: x64 instance: macos-14 - category: macos platform: arm64 instance: macos-14-arm64 python: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - name: Set Environment on macOS uses: maxim-lobanov/setup-xamarin@v1 if: ${{ matrix.os.category == 'macos' }} with: mono-version: latest - name: Checkout code uses: actions/checkout@v6 - name: Setup .NET uses: actions/setup-dotnet@v5 with: dotnet-version: '8.0.x' - name: Set up Python ${{ matrix.python }} uses: astral-sh/setup-uv@v7 with: architecture: ${{ matrix.os.platform }} python-version: ${{ matrix.python }} cache-python: true activate-environment: true enable-cache: true - name: Synchronize the virtual environment run: uv sync --managed-python - name: Show pyvenv.cfg run: cat .venv/pyvenv.cfg - name: Embedding tests (Mono/.NET Framework) run: dotnet test --runtime any-${{ matrix.os.platform }} --framework net472 --logger "console;verbosity=detailed" src/embed_tests/ if: always() env: MONO_THREADS_SUSPEND: preemptive # https://github.com/mono/mono/issues/21466 - name: Embedding tests (.NET Core) run: dotnet test --runtime any-${{ matrix.os.platform }} --framework net8.0 --logger "console;verbosity=detailed" src/embed_tests/ if: always() - name: Python Tests (Mono) if: ${{ matrix.os.category != 'windows' }} run: pytest --runtime mono - name: Python Tests (.NET Core) 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/
X Tutup