Merge pull request #67 from beeware/autoupdates/pre-commit/pre-commit… #46
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: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- main | |
workflow_call: | |
# Cancel active CI runs for a PR before starting another run | |
concurrency: | |
group: ${{ github.workflow}}-${{ github.ref }} | |
cancel-in-progress: true | |
defaults: | |
run: | |
shell: bash | |
env: | |
FORCE_COLOR: "1" | |
jobs: | |
pre-commit: | |
name: Pre-commit checks | |
uses: beeware/.github/.github/workflows/pre-commit-run.yml@main | |
test: | |
name: Test builds | |
needs: pre-commit | |
runs-on: ${{ matrix.runs-on }} | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: [ "3.9", "3.10", "3.11", "3.12", "3.13" ] | |
runs-on: [ "macos-latest", "macos-12" ] | |
exclude: | |
# Don't need to run x86 tests on every Python version | |
- python-version: "3.9" | |
runs-on: "macos-12" | |
- python-version: "3.10" | |
runs-on: "macos-12" | |
- python-version: "3.11" | |
runs-on: "macos-12" | |
- python-version: "3.13" | |
runs-on: "macos-12" | |
steps: | |
- name: Checkout | |
uses: actions/[email protected] | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/[email protected] | |
with: | |
# -dev suffix is a no-op for published releases | |
python-version: ${{ matrix.python-version }}-dev | |
# Initial call to the setup script sets up the environment | |
- name: Set up Forge | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
# Build packages that are pre-build dependencies | |
# Calling setup script activates existing environment | |
- name: Build bzip2 | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS bzip2 -vv | |
- name: Build ninja | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS ninja -vv | |
# Build examples of native packages | |
# Calling setup script activates existing environment | |
- name: Build libjpeg | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS libjpeg -vv | |
- name: Build freetype | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS freetype -vv | |
# Build an example of a simple Python package | |
# Calling setup script activates existing environment | |
- name: Build lru-dict | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS lru-dict -vv | |
# Build a package with dependencies on other packages | |
- name: Build pillow | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS pillow -vv | |
# Build a package with a complex build system | |
- name: Build numpy | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS numpy -vv | |
# Build an example of a simple Python package using C++ | |
# Calling setup script activates existing environment | |
- name: Build brotli | |
run: | | |
source ./setup-iOS.sh ${{ matrix.python-version }} | |
forge iOS brotli -vv |