Skip to content

Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 in the actions group #317

Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 in the actions group

Bump pypa/gh-action-pypi-publish from 1.12.3 to 1.12.4 in the actions group #317

# 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