Merge pull request #628 from BoundaryML/working-vscode #47
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
name: Release clients/python-ffi | |
on: | |
pull_request: | |
paths: | |
- "clients/python-ffi/**" | |
- ".github/workflows/release_python_ffi.yml" | |
branches: | |
- canary | |
push: | |
paths: | |
- "clients/python-ffi/**" | |
branches: | |
- canary | |
tags: | |
- "release/py_client_ffi/v*.*.*" | |
permissions: | |
contents: read | |
id-token: write | |
jobs: | |
build: | |
strategy: | |
matrix: | |
_: | |
- runs_on: ubuntu-latest | |
target: x86_64 | |
name: x86_64-unknown-linux-gnu | |
- runs_on: ubuntu-latest | |
target: aarch64 | |
name: aarch64-unknown-linux-gnu | |
- runs_on: macos-latest | |
target: x86_64 | |
name: x86_64-apple-darwin | |
- runs_on: macos-latest | |
target: aarch64 | |
name: aarch64-apple-darwin | |
- runs_on: windows-latest | |
target: x64 | |
name: x86_64-pc-windows-msvc | |
runs-on: ${{ matrix._.runs_on }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.8" | |
architecture: ${{ matrix._.runs_on == 'windows-latest' && 'x64' || null }} | |
- name: Build wheels | |
uses: PyO3/maturin-action@v1 | |
with: | |
target: ${{ matrix._.target }} | |
command: build | |
args: --release --out clients/python-ffi/dist --manifest-path clients/python-ffi/Cargo.toml | |
sccache: "true" | |
manylinux: ${{ matrix._.runs_on == 'ubuntu-latest' && 'auto' || null }} | |
- name: Upload wheels | |
uses: actions/upload-artifact@v4 | |
with: | |
name: wheels-${{ matrix._.name }} | |
path: clients/python-ffi/dist | |
publish: | |
runs-on: ubuntu-latest | |
needs: [build] | |
if: startsWith(github.ref, 'refs/tags/release/') | |
environment: release | |
steps: | |
- uses: actions/download-artifact@v4 | |
- run: mkdir dist && mv wheels-*/* dist | |
# authz is managed via OIDC configured at https://pypi.org/manage/project/baml-core-ffi/settings/publishing/ | |
# it is pinned to this filename, so renaming this file is not safe!!: release_python_ffi.yaml | |
- name: Publish package to PyPI | |
uses: pypa/gh-action-pypi-publish@release/v1 |