Skip to content
name: Release language_client_python
on:
workflow_call: {}
push:
branches: [sam/glibc-aarch64]
concurrency:
# suffix is important to prevent a concurrency deadlock with the calling workflow
group: ${{ github.workflow }}-${{ github.ref }}-build-python
cancel-in-progress: true
jobs:
build:
strategy:
fail-fast: false
matrix:
_:
- name: x86_64-unknown-linux-gnu
runs_on: ubuntu-latest
target: x86_64
manylinux: 'auto'
- name: aarch64-unknown-linux-gnu
runs_on: ubuntu-latest
target: aarch64
manylinux: 'auto'
env:
# Workaround ring 0.17 build issue
# see https://github.com/briansmith/ring/issues/1728#issuecomment-1758180655
# see https://github.com/astral-sh/uv/pull/3444
CFLAGS_aarch64_unknown_linux_gnu: "-D__ARM_ARCH=8"
- name: x86_64-apple-darwin
runs_on: macos-latest
target: x86_64
- name: aarch64-apple-darwin
runs_on: macos-latest
target: aarch64
- name: x86_64-pc-windows-msvc
runs_on: windows-latest
target: x64
name: ${{ matrix._.name }}
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 engine/language_client_python/dist --manifest-path engine/language_client_python/Cargo.toml
sccache: "true"
manylinux: ${{ matrix._.manylinux }}
env: ${{ matrix._.env }}
before-script-linux: |
if command -v yum &> /dev/null; then
yum update -y && yum install -y perl-core openssl openssl-devel pkgconfig libatomic
else
# If we're running on debian-based system.
# sudo apt update -y && apt-get install -y libssl-dev openssl pkg-config
:
fi
- name: Upload wheels
uses: actions/upload-artifact@v4
with:
name: wheels-${{ matrix._.name }}
path: engine/language_client_python/dist
if-no-files-found: error