fix and exercise #154
Workflow file for this run
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
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-${{ matrix.build-arch }} | |
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-${{ matrix.py-platform }} | |
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 |