Skip to content

chore(deps): update mozilla-actions/sccache-action action to v0.0.6 (… #288

chore(deps): update mozilla-actions/sccache-action action to v0.0.6 (…

chore(deps): update mozilla-actions/sccache-action action to v0.0.6 (… #288

Workflow file for this run

name: Release-plz
permissions:
pull-requests: write
contents: write
on:
push:
branches:
- develop
jobs:
release-plz:
name: Release-plz
runs-on: ubuntu-latest
outputs:
releases_created: ${{ steps.run-release-plz.outputs.releases_created }} # Expose this step output as a job output
steps:
- uses: actions/checkout@v4
with:
# Needed to pull full commit history for release version number inference
fetch-depth: 0
- uses: ./.github/actions/cleanup
- uses: ./.github/actions/setup-rust
- uses: ./.github/actions/setup-python
- name: Run release-plz
id: run-release-plz
uses: MarcoIeni/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
macos:
needs: release-plz
if: ${{ needs.release-plz.outputs.releases_created == 'true' }}
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/cleanup
- uses: ./.github/actions/setup-rust
- uses: ./.github/actions/setup-python
- name: rust-toolchain
shell: bash
run: echo "version=$(cat rust-toolchain.toml | grep channel | awk -F'\"' '{print $2}')" >> $GITHUB_OUTPUT
- name: Build wheels - x86_64
uses: PyO3/maturin-action@v1
with:
rust-toolchain: ${{ steps.rust-toolchain.version }}
working-directory: pyvortex
target: x86_64
args: --release --interpreter python3.11 --sdist
- name: Build wheels - aarch64
uses: PyO3/maturin-action@v1
with:
rust-toolchain: ${{ steps.rust-toolchain.version }}
working-directory: pyvortex
target: aarch64 # NB: aarch64 becomes arm64 in the wheel's platform tag.
args: --release --interpreter python3.11
- name: Build wheels - universal2
uses: PyO3/maturin-action@v1
with:
rust-toolchain: ${{ steps.rust-toolchain.version }}
working-directory: pyvortex
target: universal2-apple-darwin
args: --release --interpreter python3.11
- name: test wheel
run: |
set -ex
source .venv/bin/activate
ls -al target/wheels
echo removing linux_x86_64 if it exists because PyPI will reject the package if it is present
rm -f target/wheels/*linux_x86_64.whl
pip install --no-deps --force-reinstall vortex-array --no-index --find-links target/wheels
cd pyvortex/test && pytest
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: osx-wheels
path: target/wheels
linux:
needs: release-plz
if: ${{ needs.release-plz.outputs.releases_created == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# maturin-action builds in an isolated container; setting RUSTC_WRAPPER=sccache triggers failure
# because sccache is not installed in the container.
#
# - uses: ./.github/actions/setup-rust
- uses: ./.github/actions/setup-python
- name: rust-toolchain
shell: bash
run: echo "version=$(cat rust-toolchain.toml | grep channel | awk -F'\"' '{print $2}')" >> $GITHUB_OUTPUT
- name: Build wheels
uses: PyO3/maturin-action@v1
with:
rust-toolchain: ${{ steps.rust-toolchain.version }}
working-directory: pyvortex
target: x86_64
manylinux: auto
args: --release --interpreter python3.11
- name: test wheel
run: |
set -ex
source .venv/bin/activate
ls -al target/wheels
echo removing linux_x86_64 if it exists because PyPI will reject the package if it is present
rm -f target/wheels/*linux_x86_64.whl
pip install --no-deps --force-reinstall vortex-array --no-index --find-links target/wheels
pip install pytest
cd pyvortex/test && pytest
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: linux-wheels
path: target/wheels
release:
needs: [ release-plz, macos, linux ]
if: ${{ needs.release-plz.outputs.releases_created == 'true' }}
runs-on: ubuntu-latest
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing
environment:
name: push-to-pypi
url: https://pypi.org/p/vortex-array
steps:
- uses: actions/download-artifact@v4
with:
# https://github.com/actions/download-artifact?tab=readme-ov-file#download-all-artifacts
# "To download them to the same directory:"
path: dist/
merge-multiple: true
- name: Display structure of downloaded files
run: ls -R dist/
- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
attestations: true
verbose: true