fix(ci): Fix protobuf error #16
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.1 | |
# To update, run | |
# | |
# maturin generate-ci github -m bindings/lyric-py/Cargo.toml | |
# | |
name: Release Python | |
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-latest | |
target: x86_64 | |
- runner: ubuntu-latest | |
target: aarch64 | |
- runner: ubuntu-latest | |
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 --manifest-path bindings/lyric-py/Cargo.toml | |
sccache: 'true' | |
# manylinux: auto | |
manylinux: ${{ matrix.platform.target == 'aarch64' && '2_24' || 'auto' }} | |
docker-options: | | |
-e PROTOC_ARCH=${{ matrix.platform.target }} | |
-e PROTOC=/usr/local/bin/protoc | |
before-script-linux: | | |
PROTOC_VERSION="28.2" | |
if [ "$PROTOC_ARCH" = "i686" ]; then | |
PROTOC_ARCH="x86_32" | |
elif [ "$PROTOC_ARCH" = "aarch64" ]; then | |
PROTOC_ARCH="aarch_64" | |
elif [ "$PROTOC_ARCH" = "ppc64le" ]; then | |
PROTOC_ARCH="ppcle_64" | |
elif [ "$PROTOC_ARCH" = "s390x" ]; then | |
PROTOC_ARCH="s390_64" | |
fi | |
PROTOC_ZIP="protoc-${PROTOC_VERSION}-linux-${PROTOC_ARCH}.zip" | |
curl -OL "https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/${PROTOC_ZIP}" | |
unzip -o $PROTOC_ZIP -d /usr/local bin/protoc | |
unzip -o $PROTOC_ZIP -d /usr/local 'include/*' | |
rm -f $PROTOC_ZIP | |
# docker-options: | | |
# -e PROTOC=/usr/bin/protoc | |
# before-script-linux: | | |
# yum install -y protobuf-compiler | |
# echo "Which protoc: $(which protoc)" | |
# echo "Environment variables: $PROTOC" | |
# ls -l /usr/bin/protoc | |
- 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-latest | |
target: x86_64 | |
- runner: ubuntu-latest | |
target: aarch64 | |
- runner: ubuntu-latest | |
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 --manifest-path bindings/lyric-py/Cargo.toml | |
sccache: 'true' | |
manylinux: musllinux_1_2 | |
docker-options: | | |
-e PROTOC_ARCH=${{ matrix.platform.target }} | |
-e PROTOC=/usr/local/bin/protoc | |
before-script-linux: | | |
apt-get update && apt-get install -y unzip | |
PROTOC_VERSION="28.2" | |
if [ "$PROTOC_ARCH" = "i686" ]; then | |
PROTOC_ARCH="x86_32" | |
elif [ "$PROTOC_ARCH" = "aarch64" ]; then | |
PROTOC_ARCH="aarch_64" | |
fi | |
PROTOC_ZIP="protoc-${PROTOC_VERSION}-linux-${PROTOC_ARCH}.zip" | |
curl -OL "https://github.com/protocolbuffers/protobuf/releases/download/v${PROTOC_VERSION}/${PROTOC_ZIP}" | |
unzip -o $PROTOC_ZIP -d /usr/local bin/protoc | |
unzip -o $PROTOC_ZIP -d /usr/local 'include/*' | |
rm -f $PROTOC_ZIP | |
# docker-options: | | |
# -e PROTOC=/usr/bin/protoc | |
# before-script-linux: | | |
# apt-get update && apt-get install -y protobuf-compiler libprotobuf-dev | |
# echo "Which protoc: $(which protoc)" | |
# echo "Environment variables: $PROTOC" | |
# ls -l /usr/bin/protoc | |
- 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: Install Protobuf Compiler | |
# run: | | |
# choco install protoc | |
# - name: Build wheels | |
# uses: PyO3/maturin-action@v1 | |
# with: | |
# target: ${{ matrix.platform.target }} | |
# args: --release --out dist --find-interpreter --manifest-path bindings/lyric-py/Cargo.toml | |
# 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-12 | |
# target: x86_64 | |
# - runner: macos-14 | |
# target: aarch64 | |
# steps: | |
# - uses: actions/checkout@v4 | |
# - uses: actions/setup-python@v5 | |
# with: | |
# python-version: 3.x | |
# - name: Install Protobuf Compiler | |
# run: | | |
# brew install protobuf | |
# - name: Build wheels | |
# uses: PyO3/maturin-action@v1 | |
# with: | |
# target: ${{ matrix.platform.target }} | |
# args: --release --out dist --find-interpreter --manifest-path bindings/lyric-py/Cargo.toml | |
# 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: Install Protobuf Compiler | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y protobuf-compiler libprotobuf-dev | |
- name: Build sdist | |
uses: PyO3/maturin-action@v1 | |
with: | |
command: sdist | |
args: --out dist --manifest-path bindings/lyric-py/Cargo.toml | |
- 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, musllinux, windows, macos, sdist] | |
# steps: | |
# - uses: actions/download-artifact@v4 | |
# - name: Publish to PyPI | |
# uses: PyO3/maturin-action@v1 | |
# env: | |
# MATURIN_PYPI_TOKEN: ${{ secrets.PYPI_API_TOKEN }} | |
# with: | |
# command: upload | |
# args: --non-interactive --skip-existing wheels-*/* |