Drop Python 3.8, add 3.13 #227
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: | |
pull_request: | |
push: | |
branches: | |
- main | |
- "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 | |
# Prepare | |
# Using fixed Poetry version until | |
# https://github.com/python-poetry/poetry/issues/7611 and | |
# https://github.com/python-poetry/poetry/pull/7694 are fixed | |
- run: python -m pip install --upgrade wheel "poetry==1.3.2" poethepoet | |
- run: poetry install --no-root --all-extras | |
# Add the source dist only for Linux x64 for now | |
- if: ${{ matrix.package-suffix == 'linux-amd64' }} | |
run: poetry build --format sdist | |
# Build and fix the wheel | |
- run: poetry run cibuildwheel --output-dir dist | |
- run: poe fix-wheel | |
# Simple test | |
- run: poe test-dist-single | |
# Upload dist | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: packages-${{ matrix.package-suffix }} | |
path: dist |