Merge pull request #37 from lindera/package_name #23
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
# This file is autogenerated by maturin v1.7.8 | |
# To update, run | |
# | |
# maturin generate-ci -o .github/workflows/release.yml github | |
# | |
name: Release | |
on: | |
workflow_dispatch: | |
push: | |
tags: | |
- "v*.*.*" | |
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: | |
- name: Run checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
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=cjk | |
sccache: 'true' | |
manylinux: auto | |
# before-script-linux: "apt-get update && apt-get install libssl-dev pkg-config -y" | |
before-script-linux: "yum install openssl-devel devtoolset-10-libatomic-devel perl-IPC-Cmd -y" | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-linux-${{ matrix.platform.target }} | |
path: dist | |
linux2: | |
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: | |
- name: Run checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
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=cjk | |
sccache: 'true' | |
manylinux: auto | |
before-script-linux: "apt-get update && apt-get install libssl-dev pkg-config -y" | |
- 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: | |
- name: Run checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
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=cjk | |
sccache: 'true' | |
manylinux: musllinux_1_2 | |
before-script-linux: "apt-get update && apt-get install libssl-dev pkg-config -y" | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-musllinux-${{ matrix.platform.target }} | |
path: dist | |
# musllinux2: | |
# 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: | |
# - name: Run checkout | |
# uses: actions/checkout@v4 | |
# - name: Setup Python | |
# 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=cjk | |
# sccache: 'true' | |
# manylinux: musllinux_1_2 | |
# before-script-linux: "apt-get update && apt-get install libssl-dev pkg-config -y" | |
# - 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: | |
- name: Run checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
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 --features=cjk | |
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: | |
- name: Run checkout | |
uses: actions/checkout@v4 | |
- name: Setup Python | |
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=cjk | |
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: | |
- name: Run checkout | |
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, musllinux, windows, macos, 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: | |
- name: Download build artifacts | |
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-*/* | |
- name: Create GitHub Release | |
id: create_release | |
uses: softprops/action-gh-release@v2 | |
with: | |
files: ./dist/* | |
name: Release ${{ github.ref_name }} | |
tag_name: ${{ github.ref_name }} | |
draft: false | |
prerelease: false | |
generate_release_notes: true | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
publish-crates: | |
name: Publish crate | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
toolchain: [stable] | |
needs: [release] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Install toolchain | |
uses: dtolnay/rust-toolchain@v1 | |
with: | |
toolchain: ${{ matrix.toolchain }} | |
components: rustfmt, clippy | |
- name: Publish lindera-py | |
run: | | |
LINDERA_PY_VERSION=$(cargo metadata --no-deps --format-version=1 | jq -r '.packages[] | select(.name=="lindera-py") | .version') | |
LINDERA_PY_VERSIONS=$(curl -s -XGET https://crates.io/api/v1/crates/lindera-py | jq -r 'select(.versions != null) | .versions[].num') | |
if echo ${LINDERA_PY_VERSIONS} | grep ${LINDERA_PY_VERSION} >/dev/null; then | |
echo "lindera-py ${LINDERA_PY_VERSION} has already published" | |
else | |
cargo publish --token ${{ secrets.CRATES_TOKEN }} | |
fi |