-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Maturin has offered some new workflow definitions. I've adapted many of the changes into our existing workflows, while keeping some of the important original functionality. One nice change is the migration away from manylinux, so we'll see how this pans out in the long run.
- Loading branch information
1 parent
69643fd
commit d17b51b
Showing
3 changed files
with
382 additions
and
222 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,13 +21,8 @@ jobs: | |
- uses: actions/checkout@v4 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: | | ||
3.8 | ||
3.9 | ||
3.10 | ||
3.11 | ||
3.12 | ||
3.13 | ||
python-version-file: 'pyproject.toml' | ||
check-latest: true | ||
allow-prereleases: true | ||
- name: Run pre-commit checks | ||
run: | | ||
|
@@ -52,47 +47,58 @@ jobs: | |
|
||
linux: | ||
needs: [code_checks] | ||
runs-on: ubuntu-latest | ||
runs-on: ${{ matrix.platform.runner }} | ||
strategy: | ||
matrix: | ||
# s390x currently has issues with gcc | ||
target: [x86_64, aarch64, armv7, ppc64le] | ||
platform: | ||
- runner: ubuntu-latest | ||
target: x86_64 | ||
- runner: ubuntu-latest | ||
target: x86 | ||
- runner: ubuntu-latest | ||
target: aarch64 | ||
- runner: ubuntu-latest | ||
target: armv7 | ||
# s390x currently has issues building openssl | ||
# - runner: ubuntu-latest | ||
# target: s390x | ||
- runner: ubuntu-latest | ||
target: ppc64le | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Temporary fix for openssl regression #25366 | ||
run: cargo update openssl-src --precise 300.3.1+3.3.1 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: | | ||
3.8 | ||
3.9 | ||
3.10 | ||
3.11 | ||
3.12 | ||
3.13 | ||
python-version-file: 'pyproject.toml' | ||
check-latest: true | ||
allow-prereleases: true | ||
- name: Temporary fix for openssl regression #25366 | ||
run: cargo update openssl-src --precise 300.3.1+3.3.1 | ||
- name: Build wheels | ||
uses: PyO3/maturin-action@v1 | ||
env: | ||
PKG_CONFIG_PATH: "/usr/share/miniconda/lib/pkgconfig/" | ||
OPENSSL_NO_VENDOR: 1 | ||
with: | ||
target: ${{ matrix.target }} | ||
target: ${{ matrix.platform.target }} | ||
args: --release --out dist --find-interpreter | ||
# sccache: 'true' # Disabled due to issues with sccache on linux | ||
sccache: 'true' | ||
manylinux: auto | ||
before-script-linux: | | ||
# If we're running on rhel centos, install needed packages. thx s3rius! | ||
if command -v yum &> /dev/null; then | ||
yum update -y && yum install -y gcc perl-core openssl openssl-devel pkgconfig libatomic | ||
else | ||
# If we're running on debian-based system. | ||
apt update -y && apt-get install -y libssl-dev openssl pkg-config | ||
apt update -y && apt-get install -y libssl-dev openssl pkg-config libatomic1 | ||
fi | ||
# Create symlink for x86 | ||
if [ "${{ matrix.platform.target }}" = "x86" ]; then | ||
ln -s /usr/lib/libatomic.so.1 /usr/lib/libatomic.so | ||
fi | ||
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-linux-${{ matrix.target }} | ||
name: wheels-linux-${{ matrix.platform.target }} | ||
path: dist | ||
- name: Install and Test | ||
shell: bash | ||
|
@@ -101,72 +107,115 @@ jobs: | |
pip install .[dev] --find-links dist --force-reinstall | ||
pytest -v tests/ | ||
windows: | ||
musllinux: | ||
needs: [code_checks] | ||
runs-on: windows-latest | ||
runs-on: ${{ matrix.platform.runner }} | ||
strategy: | ||
matrix: | ||
target: [x64, x86] | ||
platform: | ||
- runner: ubuntu-latest | ||
target: x86_64 | ||
- runner: ubuntu-latest | ||
target: x86 | ||
- runner: ubuntu-latest | ||
target: aarch64 | ||
- runner: ubuntu-latest | ||
target: armv7 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Temporary fix for openssl regression #25366 | ||
run: cargo update openssl-src --precise 300.3.1+3.3.1 | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: | | ||
3.8 | ||
3.9 | ||
3.10 | ||
3.11 | ||
3.12 | ||
3.13 | ||
python-version-file: 'pyproject.toml' | ||
check-latest: true | ||
allow-prereleases: true | ||
architecture: ${{ matrix.target }} | ||
- name: Set Perl environment variables | ||
- name: Build wheels | ||
uses: PyO3/maturin-action@v1 | ||
env: | ||
PKG_CONFIG_PATH: "/usr/share/miniconda/lib/pkgconfig/" | ||
with: | ||
target: ${{ matrix.platform.target }} | ||
args: --release --out dist --find-interpreter | ||
# sccache: 'true' | ||
manylinux: musllinux_1_2 | ||
before-script-linux: | | ||
# If we're running on rhel centos, install needed packages. thx s3rius! | ||
if command -v yum &> /dev/null; then | ||
yum update -y && yum install -y gcc perl-core openssl openssl-devel pkgconfig libatomic | ||
else | ||
# If we're running on debian-based system. | ||
apt update -y && apt-get install -y libssl-dev openssl pkg-config libatomic1 | ||
fi | ||
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-musllinux-${{ matrix.platform.target }} | ||
path: dist | ||
- name: Install and Test | ||
shell: bash | ||
run: | | ||
set -e | ||
pip install .[dev] --find-links dist --force-reinstall | ||
pytest -v tests/ | ||
windows: | ||
needs: [code_checks] | ||
runs-on: ${{ matrix.platform.runner }} | ||
strategy: | ||
matrix: | ||
platform: | ||
- runner: windows-latest | ||
target: x64 | ||
- runner: windows-latest | ||
target: x86 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Install OpenSSL | ||
shell: powershell | ||
run: | | ||
echo "PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 | ||
echo "OPENSSL_SRC_PERL=$((where.exe perl)[0])" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8 | ||
- name: Remove wincred from docker config | ||
run: sed -i '/wincred/d' ~/.docker/config.json | ||
choco install openssl | ||
# using main for windows due to this issue | ||
# https://github.com/actions/setup-python/issues/935 | ||
- uses: actions/setup-python@main | ||
with: | ||
python-version-file: 'pyproject.toml' | ||
check-latest: true | ||
allow-prereleases: true | ||
architecture: ${{ matrix.platform.target }} | ||
- name: Build wheels | ||
uses: PyO3/maturin-action@v1 | ||
env: | ||
OPENSSL_DIR: C:\Program Files\OpenSSL-Win64 | ||
OPENSSL_STATIC: 1 | ||
with: | ||
target: ${{ matrix.target }} | ||
args: --release --out dist --find-interpreter | ||
sccache: 'true' | ||
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-windows-${{ matrix.target }} | ||
name: wheels-windows-${{ matrix.platform.target }} | ||
path: dist | ||
- name: Install | ||
shell: bash | ||
run: pip install .[dev] --find-links dist --force-reinstall | ||
# Disabled on windows due to issues with docker | ||
# BuildError: no matching manifest for windows/amd64 ... in the manifest list entries | ||
# - name: Test | ||
# if: ${{ !startsWith(matrix.target, 'x86') }} | ||
# shell: bash | ||
# run: pytest -v tests/ | ||
|
||
macos: | ||
needs: [code_checks] | ||
runs-on: macos-latest | ||
runs-on: ${{ matrix.platform.runner }} | ||
strategy: | ||
matrix: | ||
target: [x86_64, aarch64] | ||
env: | ||
OPENSSL_NO_VENDOR: 1 | ||
DOCKER_HOST: unix:///var/run/docker.sock | ||
platform: | ||
- runner: macos-12 | ||
target: x86_64 | ||
- runner: macos-14 | ||
target: aarch64 | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Install OpenSSL | ||
run: | | ||
brew install [email protected] | ||
- uses: actions/setup-python@v5 | ||
with: | ||
python-version: | | ||
3.8 | ||
3.9 | ||
3.10 | ||
3.11 | ||
3.12 | ||
3.13 | ||
python-version-file: 'pyproject.toml' | ||
check-latest: true | ||
allow-prereleases: true | ||
- name: Set OPENSSL_DIR | ||
run: echo "OPENSSL_DIR=$(brew --prefix openssl@3)" >> $GITHUB_ENV | ||
|
@@ -179,17 +228,5 @@ jobs: | |
- name: Upload wheels | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: wheels-macos-${{ matrix.target }} | ||
name: wheels-macos-${{ matrix.platform.target }} | ||
path: dist | ||
# - name: setup-docker | ||
# run: | | ||
# brew install docker | ||
# open --background -a Docker | ||
# while ! docker info &> /dev/null; do sleep 1; done | ||
- name: Install | ||
shell: bash | ||
run: pip install .[dev] --find-links dist --force-reinstall | ||
# Disabled on macos due to issues with docker | ||
# - name: Test | ||
# shell: bash | ||
# run: pytest -v tests/ |
Oops, something went wrong.