Skip to content

release: 0.9.3

release: 0.9.3 #151

Workflow file for this run

name: Library Release Build
on:
push:
branches:
- release-library/**
env:
CARGO_TERM_COLOR: always
RELAY_CARGO_ARGS: "--locked"
jobs:
linux:
timeout-minutes: 30
strategy:
fail-fast: false
matrix:
build-arch:
- x86_64
- aarch64
name: Python Linux ${{ matrix.build-arch }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- if: matrix.build-arch == 'aarch64'
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Build in Docker
run: scripts/docker-manylinux.sh
env:
TARGET: ${{ matrix.build-arch }}
- uses: actions/upload-artifact@v4
with:
name: artifact-linux
path: py/dist/*
if-no-files-found: 'error'
# since this artifact will be merged, compression is not necessary
compression-level: '0'
macos:
strategy:
fail-fast: false
matrix:
include:
- target: x86_64-apple-darwin
py-platform: macosx-13_0_x86_64
- target: aarch64-apple-darwin
py-platform: macosx-14_0_arm64
name: Python macOS ${{ matrix.py-platform }}
runs-on: macos-14
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Rust Toolchain
run: |
rustup set profile minimal
rustup toolchain install stable
rustup override set stable
rustup target add --toolchain stable ${{ matrix.target }}
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Build Wheel
run: |
pip install wheel
python setup.py bdist_wheel -p ${{ matrix.py-platform }}
working-directory: py
env:
# consumed by cargo and setup.py to obtain the target dir
CARGO_BUILD_TARGET: ${{ matrix.target }}
- uses: actions/upload-artifact@v4
with:
name: artifact-macos
path: py/dist/*
if-no-files-found: 'error'
# since this artifact will be merged, compression is not necessary
compression-level: '0'
sdist:
name: Python sdist
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Build sdist
run: python setup.py sdist --format=zip
working-directory: py
- uses: actions/upload-artifact@v4
with:
name: artifact-sdist
path: py/dist/*
if-no-files-found: 'error'
# since this artifact will be merged, compression is not necessary
compression-level: '0'
merge:
name: Create Release Artifact
runs-on: ubuntu-latest
needs: [linux, macos, sdist]
steps:
# Note: due to the immutability of artifacts in upload-artifact v4,
# there cannot be mutliple upload-artifacts with the same name, in a sha's workflow runs.
# However in this case it is fine because this only runs on release-library/** branches,
# and the other runs on release/** branches.
- uses: actions/upload-artifact/merge@v4
with:
# Craft expects release assets to be a single artifact named after the sha.
name: ${{ github.sha }}
pattern: artifact-*
delete-merged: true