Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 20 additions & 1 deletion .github/workflows/build-and-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

wheels-macos:
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/build-mac-wheel.yml
with:
python-version: ${{ matrix.python-version }}

test-wheels-windows:
needs: wheels-windows
strategy:
Expand Down Expand Up @@ -83,6 +92,16 @@ jobs:
with:
python-version: ${{ matrix.python-version }}

test-wheels-macos:
needs: wheels-macos
strategy:
fail-fast: false
matrix:
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
uses: ./.github/workflows/test-mac-wheel.yml
with:
python-version: ${{ matrix.python-version }}

sdist:
runs-on: ubuntu-latest
steps:
Expand All @@ -99,7 +118,7 @@ jobs:
git config --global user.name "CI Builder"
rm -f .gitignore
git add . && git commit -m "Update meson files for build"
- run: python -m pip install build meson
- run: python -m pip install build meson, test-wheels-macos
- run: python -m build --sdist
- uses: actions/upload-artifact@v4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-linux-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ on:
jobs:
build-linux:
runs-on: ubuntu-latest
timeout-minutes: ${{ inputs.timeout-minutes }}
timeout-minutes: ${{ fromJSON(inputs.timeout-minutes) }}
steps:
- uses: actions/checkout@v4

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-mac-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ on:
jobs:
build-macos:
runs-on: macos-latest
timeout-minutes: ${{ inputs.timeout-minutes }}
timeout-minutes: ${{ fromJSON(inputs.timeout-minutes) }}
steps:
- uses: actions/checkout@v4

Expand Down
232 changes: 0 additions & 232 deletions .github/workflows/test-all-versions.yml

This file was deleted.

2 changes: 1 addition & 1 deletion .github/workflows/test-linux-wheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ on:
jobs:
test-wheels-linux:
runs-on: ubuntu-latest
timeout-minutes: ${{ inputs.timeout-minutes }}
timeout-minutes: ${{ fromJSON(inputs.timeout-minutes) }}
env:
REQUIREMENTS_FILE: ${{ inputs.python-version == '3.9' && 'requirements.3.9.txt' || 'requirements.txt' }}
steps:
Expand Down
70 changes: 70 additions & 0 deletions .github/workflows/test-mac-wheel.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
name: Test macOS Wheel

on:
workflow_call:
inputs:
python-version:
required: true
type: string
timeout-minutes:
required: false
type: number
default: 15
pytest-markers:
required: false
type: string
default: "-m 'not integration_test' -m 'not stress_test'"
workflow_dispatch:
inputs:
python-version:
description: 'Python version to test'
required: true
type: choice
options:
- '3.9'
- '3.10'
- '3.11'
- '3.12'
- '3.13'
- '3.14'
default: '3.12'
timeout-minutes:
description: 'Timeout in minutes'
required: false
type: number
default: 15
pytest-markers:
description: 'Pytest markers (e.g., -m stress_test)'
required: false
type: string
default: "-m 'not integration_test' -m 'not stress_test'"

jobs:
test-wheels-macos:
runs-on: macos-latest
timeout-minutes: ${{ fromJSON(inputs.timeout-minutes) }}
env:
REQUIREMENTS_FILE: ${{ inputs.python-version == '3.9' && 'requirements.3.9.txt' || 'requirements.txt' }}
steps:
- uses: actions/checkout@v4

- name: Set up Python ${{ inputs.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ inputs.python-version }}

- name: Download wheel artifact
uses: actions/download-artifact@v4
with:
name: wheels-macos-${{ inputs.python-version }}
path: ./wheels/

- name: Install wheel and dependencies
run: |
pip install pytest
pip install -r $REQUIREMENTS_FILE
pip install ./wheels/*.whl

- name: Run tests
run: |
python -m pytest ${{ inputs.pytest-markers }} -c pytest.ini --capture=no -vv
Loading