[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/pythonnet/pythonnet/v3.2.0/.github/workflows/main.yml [Back]  [Original]

name: Main

on:
  push:
    branches:
      - master
  pull_request:

jobs:
  build-test:
    name: Build and Test
    runs-on: ${{ matrix.os.instance }}
    timeout-minutes: 30

    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: arm64
            instance: macos-15
            suffix:   ""

        python: ["3.11", "3.12", "3.13", "3.14", "3.14t", "3.15", "3.15t"]

        exclude:
          # fails to call mono methods
          - os:
              category: windows
              platform: x86
            python: '3.13'

    env:
      NUGET_PACKAGES: ${{ github.workspace }}/.nuget/packages
    steps:
      - name: Checkout code
        uses: actions/checkout@v7

      # Use main until support for architecture lands
      - name: Setup .NET
        uses: actions/setup-dotnet@main
        with:
          dotnet-version: '10.0'
          architecture: ${{ matrix.os.platform }}

      - run: dotnet restore

      - name: Install Mono
        uses: pythonnet/clr-loader/.github/actions/install-mono@main
        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

      - 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 (.NET Core)
        if: always()
        run: pytest --runtime coreclr

      - name: Python Tests (Mono)
        if: always()
        run: pytest --runtime mono

      - name: Python Tests (.NET Framework)
        if: ${{ matrix.os.category == 'windows' }}
        run: pytest --runtime netfx

      - name: Python tests run from .NET
        run: dotnet test --runtime any-${{ matrix.os.platform }} src/python_tests_runner/

Web Proxy Viewer  |  New URL  |  Original Page