Skip to content

Commit

Permalink
Fix CI by using macos-13 explicitly, adjust OS config (#2373)
Browse files Browse the repository at this point in the history
  • Loading branch information
filmor committed May 5, 2024
1 parent 563e369 commit 6a8a97d
Showing 1 changed file with 29 additions and 19 deletions.
48 changes: 29 additions & 19 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,25 +9,35 @@ on:
jobs:
build-test:
name: Build and Test
runs-on: ${{ matrix.os }}-latest
runs-on: ${{ matrix.os.instance }}
timeout-minutes: 15

strategy:
fail-fast: false
matrix:
os: [windows, ubuntu, macos]
python: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
platform: [x64, x86]
exclude:
- os: ubuntu
platform: x86
- os: macos
os:
- category: windows
platform: x86
instance: windows-latest

- category: windows
platform: x64
instance: windows-latest

- category: ubuntu
platform: x64
instance: ubuntu-latest

- category: macos
platform: x64
instance: macos-13

python: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]

steps:
- name: Set Environment on macOS
uses: maxim-lobanov/setup-xamarin@v1
if: ${{ matrix.os == 'macos' }}
if: ${{ matrix.os.category == 'macos' }}
with:
mono-version: latest

Expand All @@ -43,7 +53,7 @@ jobs:
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python }}
architecture: ${{ matrix.platform }}
architecture: ${{ matrix.os.platform }}

- name: Install dependencies
run: |
Expand All @@ -55,42 +65,42 @@ jobs:
pip install -v .
- name: Set Python DLL path and PYTHONHOME (non Windows)
if: ${{ matrix.os != 'windows' }}
if: ${{ matrix.os.category != 'windows' }}
run: |
echo PYTHONNET_PYDLL=$(python -m find_libpython) >> $GITHUB_ENV
echo PYTHONHOME=$(python -c 'import sys; print(sys.prefix)') >> $GITHUB_ENV
- name: Set Python DLL path and PYTHONHOME (Windows)
if: ${{ matrix.os == 'windows' }}
if: ${{ matrix.os.category == 'windows' }}
run: |
Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append -InputObject "PYTHONNET_PYDLL=$(python -m find_libpython)"
Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append -InputObject "PYTHONHOME=$(python -c 'import sys; print(sys.prefix)')"
- name: Embedding tests
run: dotnet test --runtime any-${{ matrix.platform }} --logger "console;verbosity=detailed" src/embed_tests/
run: dotnet test --runtime any-${{ matrix.os.platform }} --logger "console;verbosity=detailed" src/embed_tests/
env:
MONO_THREADS_SUSPEND: preemptive # https://github.com/mono/mono/issues/21466

- name: Python Tests (Mono)
if: ${{ matrix.os != 'windows' }}
if: ${{ matrix.os.category != 'windows' }}
run: pytest --runtime mono

# TODO: Run these tests on Windows x86
- name: Python Tests (.NET Core)
if: ${{ matrix.platform == 'x64' }}
if: ${{ matrix.os.platform == 'x64' }}
run: pytest --runtime coreclr

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

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

- name: Perf tests
if: ${{ (matrix.python == '3.8') && (matrix.platform == 'x64') }}
if: ${{ (matrix.python == '3.8') && (matrix.os.platform == 'x64') }}
run: |
pip install --force --no-deps --target src/perf_tests/baseline/ pythonnet==2.5.2
dotnet test --configuration Release --runtime any-${{ matrix.platform }} --logger "console;verbosity=detailed" src/perf_tests/
dotnet test --configuration Release --runtime any-${{ matrix.os.platform }} --logger "console;verbosity=detailed" src/perf_tests/
# TODO: Run mono tests on Windows?

0 comments on commit 6a8a97d

Please sign in to comment.