Install protoc #277
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
name: Build Binaries | |
on: | |
push: | |
branches: | |
- main | |
- maturin | |
- "releases/*" | |
jobs: | |
# Compile the binaries and upload artifacts | |
compile-binaries: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- os: ubuntu-latest | |
package-suffix: linux-amd64 | |
- os: ubuntu-arm | |
package-suffix: linux-aarch64 | |
runsOn: ubuntu-24.04-arm64-2-core | |
- os: macos-intel | |
package-suffix: macos-amd64 | |
runsOn: macos-13 | |
- os: macos-arm | |
package-suffix: macos-aarch64 | |
runsOn: macos-14 | |
- os: windows-latest | |
package-suffix: windows-amd64 | |
runs-on: ${{ matrix.runsOn || matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: recursive | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.13" | |
# Install Rust locally for non-Linux (Linux uses an internal docker | |
# command to build with cibuildwheel which uses rustup install defined | |
# in pyproject.toml) | |
- if: ${{ runner.os != 'Linux' }} | |
uses: dtolnay/rust-toolchain@stable | |
- if: ${{ runner.os != 'Linux' }} | |
uses: Swatinem/rust-cache@v2 | |
with: | |
workspaces: temporalio/bridge -> target | |
- uses: astral-sh/setup-uv@v5 | |
- run: uv sync --all-extras | |
- uses: arduino/setup-protoc@v3 | |
with: | |
# TODO(cretz): Can upgrade proto when https://github.com/arduino/setup-protoc/issues/99 fixed | |
version: "23.x" | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
- run: uv build | |
# Add the source dist only for Linux x64 for now | |
- if: ${{ matrix.package-suffix == 'linux-amd64' }} | |
run: uv build --sdist | |
# Build the wheel | |
- run: uv run cibuildwheel --output-dir dist | |
# Install the wheel in a new venv and run a test | |
- run: | | |
python -m venv .test-venv | |
./.test-venv/bin/pip install --no-index --find-links=./dist temporalio | |
./.test-venv/bin/pip install pytest | |
./.test-venv/bin/python -m pytest -k tests/test_activity_hello | |
rm -r .test-venv | |
# Upload dist | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: packages-${{ matrix.package-suffix }} | |
path: dist |