Skip to content

Fix release workflow. #187

Fix release workflow.

Fix release workflow. #187

Workflow file for this run

# name: release
# on:
# push:
# branches:
# - main
# tags:
# - '*'
# pull_request:
# workflow_dispatch:
# concurrency:
# group: ${{ github.workflow }}-${{ github.ref_name }}-${{ github.event.pull_request.number || github.sha }}
# cancel-in-progress: true
# jobs:
# build:
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# # os: [macos-latest, ubuntu-latest]
# os: [ubuntu-latest]
# target: [x86_64, aarch64]
# # os: [macos-latest]
# # target: [x86_64]
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-python@v5
# with:
# python-version: '3.13'
# - name: Build wheels.
# uses: PyO3/maturin-action@v1
# with:
# command: publish
# args: --no-password
# # - name: Build sdist.
# # if: matrix.os == 'ubuntu-latest' && matrix.target == 'x86_64'
# # uses: PyO3/maturin-action@v1
# # with:
# # command: sdist
# # - name: Upload wheels.
# # uses: actions/upload-artifact@v4
# # with:
# # name: wheels-artifact-${{ matrix.os }}-${{ matrix.target }}
# # path: target/wheels/*.whl
# # - name: Upload sdist artifact (only on Ubuntu).
# # if: matrix.os == 'ubuntu-latest' && matrix.target == 'x86_64'
# # uses: actions/upload-artifact@v4
# # with:
# # name: sdist-artifact
# # path: target/wheels/*.tar.gz
# # publish-to-testpypi:
# # name: Test release.
# # needs: [build]
# # runs-on: ubuntu-latest
# # permissions:
# # id-token: write # IMPORTANT: mandatory for trusted publishing
# # steps:
# # - name: Download all the dists.
# # uses: actions/download-artifact@v4
# # - name: Display structure of downloaded files
# # run: ls -R
# # - name: Organize artifacts into a directory
# # run: |
# # mkdir -p dist
# # mv **/* dist/
# # # with:
# # # merge-multiple: true
# # - name: Display structure of downloaded files
# # run: ls -R
# # - name: Publish distribution to TestPyPI.
# # uses: pypa/gh-action-pypi-publish@release/v1
# # with:
# # repository-url: https://test.pypi.org/legacy/
# # steps:
# # - uses: actions/download-artifact@v4
# # with:
# # name: python-package-distributions
# # path: dist/
# # - name: Publish distribution to Test PyPI.
# # uses: pypa/gh-action-pypi-publish@release/v1
# # with:
# # password: ${{ secrets.TEST_PYPI_API_TOKEN }}
# # repository-url: https://test.pypi.org/legacy/
# # skip-existing: true
# # release:
# # name: Release
# # runs-on: ubuntu-latest
# # if: "startsWith(github.ref, 'refs/tags/')"
# # needs: [linux, macos, sdist]
# # steps:
# # - uses: actions/download-artifact@v4
# # with:
# # name: python-package-distributions
# # path: dist/
# # - name: Publish to PyPI
# # uses: PyO3/maturin-action@v1
# # env:
# # MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
# # with:
# # command: upload
# # args: --skip-existing *
name: CI
on:
push:
branches:
- main
- master
tags:
- '*'
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
linux:
runs-on: ${{ matrix.platform.runner }}
strategy:
matrix:
platform:
- runner: ubuntu-22.04
target: x86_64
# - runner: ubuntu-22.04
# target: x86
# - runner: ubuntu-22.04
# target: aarch64
# - runner: ubuntu-22.04
# target: armv7
# - runner: ubuntu-22.04
# target: s390x
# - runner: ubuntu-22.04
# target: ppc64le
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
sccache: 'true'
manylinux: auto
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-linux-${{ matrix.platform.target }}
path: dist
# musllinux:
# runs-on: ${{ matrix.platform.runner }}
# strategy:
# matrix:
# platform:
# - runner: ubuntu-22.04
# target: x86_64
# - runner: ubuntu-22.04
# target: x86
# - runner: ubuntu-22.04
# target: aarch64
# - runner: ubuntu-22.04
# target: armv7
# 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
# sccache: 'true'
# manylinux: musllinux_1_2
# - name: Upload wheels
# uses: actions/upload-artifact@v4
# with:
# name: wheels-musllinux-${{ 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:
# 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
# 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
- 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/') || github.event_name == 'workflow_dispatch' }}
needs: [linux, sdist]
permissions:
# Use to sign the release artifacts
id-token: write
# Used to upload release artifacts
contents: write
# Used to generate artifact attestation
attestations: write
steps:
- uses: actions/download-artifact@v4
- name: Generate artifact attestation
uses: actions/attest-build-provenance@v1
with:
subject-path: 'wheels-*/*'
- name: Publish to PyPI
# if: ${{ startsWith(github.ref, 'refs/tags/') }}
uses: PyO3/maturin-action@v1
# env:
# MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }}
with:
command: upload
args: --non-interactive --skip-existing wheels-*/* --repository-url https://test.pypi.org/legacy/