Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 in the actions group #317
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
# This file was mostly autogenerated by maturin v1.7.1 | |
# To update, run | |
# | |
# maturin generate-ci github --manifest-path py-binding/Cargo.toml | |
# | |
# NOTE: There are some customizations added to the generated output. | |
# - workflow name is more descriptive | |
# - use openssl-vendored cargo feature on | |
# * most cross-compiled Linux wheels | |
# * all MacOS builds | |
# - muslinux builds (& x390 Linux target) are excluded due to complexity of | |
# installing openSSL lib in cross-compiler's docker/env. | |
name: Python builds | |
on: | |
push: | |
branches: [main] | |
paths: | |
- cpp-linter/**.{rs,toml} | |
- bindings/python/** | |
- Cargo.{toml,lock} | |
- .github/workflows/python-packaging.yml | |
- pyproject.toml | |
tags: | |
- '*' | |
pull_request: | |
branches: [main] | |
paths: | |
- cpp-linter/**.{rs,toml} | |
- bindings/python/** | |
- Cargo.{toml,lock} | |
- .github/workflows/python-packaging.yml | |
- pyproject.toml | |
permissions: | |
contents: read | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
jobs: | |
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.x' | |
- name: Calculate openssl-vendored | |
shell: bash | |
id: is-openssl-vendored | |
run: | | |
if [[ "${{ startsWith(matrix.platform.target, 'x86') }}" == "true" ]]; then | |
echo "enabled=" >> $GITHUB_OUTPUT | |
else | |
echo "enabled=--features openssl-vendored" >> $GITHUB_OUTPUT | |
fi | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --out dist --find-interpreter ${{ steps.is-openssl-vendored.outputs.enabled }} | |
# sccache: 'true' | |
manylinux: auto | |
before-script-linux: | | |
case "${{ matrix.platform.target }}" in | |
"aarch64" | "armv7" | "s390x" | "ppc64le") | |
# NOTE: pypa/manylinux docker images are Debian based | |
sudo apt-get update | |
sudo apt-get install -y pkg-config libssl-dev | |
;; | |
"x86" | "x86_64") | |
# NOTE: rust-cross/manylinux docker images are CentOS based | |
yum update -y | |
yum install -y openssl openssl-devel | |
;; | |
esac | |
- 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.x' | |
architecture: ${{ matrix.platform.target }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --out dist --find-interpreter | |
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: | |
fail-fast: false | |
matrix: | |
platform: | |
- runner: macos-13 | |
target: x86_64 | |
- runner: macos-14 | |
target: aarch64 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --out dist --find-interpreter --features openssl-vendored | |
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 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
- 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/* | |
release: | |
name: Release | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
needs: [linux, windows, macos, sdist] | |
permissions: | |
id-token: write | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: wheels-* | |
path: dist | |
merge-multiple: true | |
- name: Publish to PyPI | |
uses: pypa/gh-action-pypi-publish@76f52bc884231f62b9a034ebfe128415bbaabdfc | |
with: | |
attestations: true | |
skip-existing: true | |
# This workflow is registered as a trusted publisher (for test-pypi and pypi). | |
# A token should not be required (and actually is discouraged with trusted publishers). | |
repository-url: ${{ contains(github.ref_name, 'rc') && 'https://test.pypi.org/legacy/' || 'https://upload.pypi.org/legacy/' }} | |
# - name: Upload release assets | |
# env: | |
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# run: | |
# files=$(ls ./dist/cpp-linter*.{whl,atr.gz}) | |
# gh release upload "${{ github.ref_name }}" $files |