Skip to content

Commit

Permalink
ci: add tests for all major platforms
Browse files Browse the repository at this point in the history
  • Loading branch information
AshGw committed Jun 9, 2024
1 parent 1766122 commit 2b254d8
Show file tree
Hide file tree
Showing 2 changed files with 122 additions and 6 deletions.
126 changes: 120 additions & 6 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -51,20 +51,134 @@ jobs:

- run: cargo doc

# https://github.com/marketplace/actions/alls-green#why used for branch protection checks
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-latest
target: x86_64
- runner: ubuntu-latest
target: x86
- runner: ubuntu-latest
target: aarch64
- runner: ubuntu-latest
target: armv7
- runner: ubuntu-latest
target: s390x
- runner: ubuntu-latest
target: ppc64le
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
sccache: 'true'
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist

windows:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: windows-latest
target: x64
- runner: windows-latest
target: x86
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
architecture: ${{ matrix.platform.target }}
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-windows-${{ matrix.platform.target }}
path: dist

macos:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: macos-latest
target: x86_64
- runner: macos-14
target: aarch64
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
target: ${{ matrix.platform.target }}
args: --release --out dist
sccache: 'true'
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-macos-${{ matrix.platform.target }}
path: dist

sdist:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Build sdist
uses: PyO3/maturin-action@v1
with:
command: sdist
args: --out dist
- name: Upload sdist
uses: actions/upload-artifact@v4
with:
name: wheels-sdist
path: dist

check:
if: always()
needs: [test, lint]
needs: [test, linux, windows, macos, sdist]
runs-on: ubuntu-latest
steps:
- name: if jobs failed dip
uses: re-actors/alls-green@release/v1
with:
jobs: ${{ toJSON(needs) }}

release:
release-python:
name: Release
runs-on: ubuntu-latest
needs: [check]
if: success() && startsWith(github.ref, 'refs/tags/')
steps:
- uses: actions/download-artifact@v4
- name: Publish to PyPI
uses: PyO3/maturin-action@v1
env:
MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheels-*/*

release-rust:
needs: [release-python]
runs-on: ubuntu-latest
environment: release
steps:
Expand All @@ -76,4 +190,4 @@ jobs:
profile: minimal
toolchain: stable
override: true
- run: cargo publish --token ${{ secrets.TOKEN }}
- run: cargo publish --token ${{ secrets.CRATES_TOKEN }}
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -16,3 +16,5 @@ dynamic = ["version"]
python-source = "."
module-name = "py._lib_name"
features = ["pyo3/extension-module"]
api-key = "PYPI_API_KEY"

0 comments on commit 2b254d8

Please sign in to comment.