feat(component): Support run typescript in lyric #69
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.1 | |
# To update, run | |
# | |
# maturin generate-ci github -m bindings/python/lyric-py/Cargo.toml | |
# | |
name: Release lyric-py | |
on: | |
release: | |
types: [published] | |
push: | |
branches: | |
- main | |
- master | |
pull_request: | |
workflow_dispatch: | |
permissions: | |
contents: read | |
concurrency: | |
group: ${{ github.event.number || github.run_id }} | |
cancel-in-progress: true | |
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: cache rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: linux-${{ matrix.platform.target }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --out dist --find-interpreter --manifest-path bindings/python/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: | | |
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" | |
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 | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-linux-${{ matrix.platform.target }} | |
path: dist | |
# - name: Install built wheel | |
# run: | | |
# pip install lyric-py --no-index --no-deps --find-links dist --force-reinstall | |
# - name: Basic import test | |
# run: | | |
# python -c "import lyric; print(lyric.__version__)" | |
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: cache rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: musllinux-${{ matrix.platform.target }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix.platform.target }} | |
args: --release --out dist --find-interpreter --manifest-path bindings/python/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: | | |
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 | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-musllinux-${{ matrix.platform.target }} | |
path: dist | |
# - name: Install built wheel | |
# run: | | |
# pip install lyric-py --no-index --no-deps --find-links dist --force-reinstall | |
# - name: Basic import test | |
# run: | | |
# python -c "import lyric; print(lyric.__version__)" | |
windows: | |
runs-on: ${{ matrix.platform.runner }} | |
strategy: | |
matrix: | |
platform: | |
- runner: windows-latest | |
target: x86_64 | |
python-architecture: x64 | |
# Remove the comment below to enable 32-bit Windows builds | |
# - runner: windows-latest | |
# target: x86 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
architecture: ${{ matrix.platform.python-architecture }} | |
- name: install rust stable | |
id: rust-toolchain | |
uses: dtolnay/rust-toolchain@master | |
with: | |
components: llvm-tools | |
# Limit windows builds to 1.77 to keep Windows 7 support. | |
toolchain: 'stable' | |
- name: cache rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: windows-${{ 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/python/lyric-py/Cargo.toml | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-windows-${{ matrix.platform.target }} | |
path: dist | |
# - name: Install built wheel | |
# run: | | |
# pip install lyric-py --no-index --no-deps --find-links dist --force-reinstall | |
# - name: Basic import test | |
# run: | | |
# python -c "import lyric; print(lyric.__version__)" | |
macos-x86_64: | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
architecture: x64 | |
- name: cache rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: macos-x86_64 | |
- name: Install Protobuf Compiler | |
run: | | |
brew install protobuf | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: x86_64 | |
args: --release --out dist --find-interpreter --manifest-path bindings/python/lyric-py/Cargo.toml | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-macos-x86_64 | |
path: dist | |
# - name: Install built wheel | |
# run: | | |
# pip install lyric-py --no-index --no-deps --find-links dist --force-reinstall | |
# - name: Basic import test | |
# run: | | |
# python -c "import lyric; print(lyric.__version__)" | |
macos-aarch64: | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.x | |
architecture: arm64 | |
- name: cache rust | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: macos-aarch64 | |
- name: Install Protobuf Compiler | |
run: | | |
brew install protobuf | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: aarch64 | |
args: --release --out dist --find-interpreter --manifest-path bindings/python/lyric-py/Cargo.toml | |
sccache: 'true' | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-macos-aarch64 | |
path: dist | |
# - name: Install built wheel | |
# run: | | |
# pip install lyric-py --no-index --no-deps --find-links dist --force-reinstall | |
# - name: Basic import test | |
# run: | | |
# python -c "import lyric; print(lyric.__version__)" | |
sdist: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build sdist | |
uses: PyO3/maturin-action@v1 | |
with: | |
command: sdist | |
args: --out dist --manifest-path bindings/python/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 | |
# Only trigger on GitHub Release creation | |
if: github.event_name == 'release' && github.event.action == 'published' | |
needs: [linux, musllinux, windows, macos-x86_64, macos-aarch64, 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-*/* | |
# Test the built wheels | |
test-wheels: | |
name: Test Wheels | |
runs-on: ubuntu-latest | |
if: github.event_name != 'release' | |
needs: [ linux, musllinux, windows, macos-x86_64, macos-aarch64, sdist ] | |
steps: | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: wheels-* | |
merge-multiple: true | |
path: dist | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
# Install the built wheel | |
- name: Install built wheel | |
run: | | |
pip install lyric-py --no-index --no-deps --find-links dist --force-reinstall | |
# Some integration tests | |
# python -m pytest |