Skip to content

Commit

Permalink
Maximize parallellization
Browse files Browse the repository at this point in the history
  • Loading branch information
ddelange committed Sep 20, 2022
1 parent 0f98dc0 commit 779e0b1
Showing 1 changed file with 34 additions and 28 deletions.
62 changes: 34 additions & 28 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ name: Release

on:
pull_request:
branches:
- "master"
- "ci"
- "[0-9]+.[0-9x]+*"
paths:
- "asyncpg/_version.py"
# branches:
# - "master"
# - "ci"
# - "[0-9]+.[0-9x]+*"
# paths:
# - "asyncpg/_version.py"

jobs:
validate-release-request:
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
submodules: true

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4

- name: Build source distribution
run: |
Expand All @@ -68,28 +68,35 @@ jobs:
name: dist
path: dist/*.tar.*

build-wheels-matrix:
# needs: validate-release-request
runs-on: ubuntu-latest
outputs:
include: ${{ steps.set-matrix.outputs.include }}
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v4
- run: pip install https://github.com/henryiii/cibuildwheel/archive/refs/heads/henryiii/fix/crossplatform.zip # unreleased ref https://github.com/pypa/cibuildwheel/pull/1266
- id: set-matrix
run: |
MATRIX_INCLUDE=$(
{
cibuildwheel --print-build-identifiers --platform linux --arch x86_64,aarch64 | grep cp | jq -Rc '{"only": inputs, "os": "ubuntu-latest"}' \
&& cibuildwheel --print-build-identifiers --platform macos --arch x86_64,arm64 | grep cp | jq -Rc '{"only": inputs, "os": "macos-latest"}' \
&& cibuildwheel --print-build-identifiers --platform windows --arch x86,AMD64 | grep cp | jq -Rc '{"only": inputs, "os": "windows-latest"}'
} | jq -sc
)
echo ::set-output name=include::"$MATRIX_INCLUDE"
build-wheels:
needs: validate-release-request
needs: build-wheels-matrix
runs-on: ${{ matrix.os }}
continue-on-error: true
name: Build ${{ matrix.only }}

strategy:
matrix:
include:
- {os: macos-latest, arch: x86_64, build: "*"}
- {os: macos-latest, arch: arm64, build: "*"}
- {os: windows-latest, arch: AMD64, build: "*"}
- {os: windows-latest, arch: x86, build: "*"}
- {os: ubuntu-latest, arch: x86_64, build: "*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[61]-manylinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[72]-manylinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[83]-manylinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[94]-manylinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[05]-manylinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[61]-musllinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[72]-musllinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[83]-musllinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[94]-musllinux*"}
- {os: ubuntu-latest, arch: aarch64, build: "*[05]-musllinux*"}
include: ${{ fromJson(needs.build-wheels-matrix.outputs.include) }}

defaults:
run:
Expand All @@ -109,11 +116,10 @@ jobs:
uses: docker/setup-qemu-action@v2

- uses: pypa/cibuildwheel@v2.10.0
with:
only: ${{ matrix.only }}
env:
CIBW_BUILD_VERBOSITY: 1
CIBW_ARCHS: ${{ matrix.arch }}
CIBW_BUILD: ${{ matrix.build }} # py versions from setup.py -> python_requires
CIBW_SKIP: pp*
CIBW_MANYLINUX_X86_64_IMAGE: manylinux_2_28
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux_2_28

Expand All @@ -137,7 +143,7 @@ jobs:
submodules: true

- name: Set up Python
uses: actions/setup-python@v2
uses: actions/setup-python@v4
with:
python-version: 3.8

Expand Down

0 comments on commit 779e0b1

Please sign in to comment.