![dependabot[bot]](/assets/img/avatar_default.png)
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 2.22.0 to 2.23.3. - [Release notes](https://github.com/pypa/cibuildwheel/releases) - [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md) - [Commits](https://github.com/pypa/cibuildwheel/compare/v2.22.0...v2.23.3) --- updated-dependencies: - dependency-name: pypa/cibuildwheel dependency-version: 2.23.3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
131 lines
3.8 KiB
YAML
131 lines
3.8 KiB
YAML
name: Build and publish
|
|
|
|
on:
|
|
release:
|
|
types: [published]
|
|
pull_request:
|
|
push:
|
|
branches:
|
|
- main
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
main:
|
|
name: sdist + pure wheel
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'release'
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up latest Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.13"
|
|
allow-prereleases: true
|
|
|
|
- name: Install latest pip, build, twine
|
|
run: |
|
|
python -m pip install --upgrade --disable-pip-version-check pip
|
|
python -m pip install --upgrade build twine
|
|
|
|
- name: Build wheel and source distributions
|
|
run: python -m build
|
|
|
|
- if: github.event_name == 'release'
|
|
name: Upload to PyPI via Twine
|
|
env:
|
|
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
run: twine upload --verbose -u '__token__' dist/*
|
|
|
|
generate_wheels_matrix:
|
|
name: generate wheels matrix
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
include: ${{ steps.set-matrix.outputs.include }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
# Keep cibuildwheel version in sync with below
|
|
- name: Install cibuildwheel and pypyp
|
|
run: |
|
|
pipx install cibuildwheel==2.22.0
|
|
pipx install pypyp==1.3.0
|
|
- name: generate matrix
|
|
if: github.event_name != 'pull_request'
|
|
run: |
|
|
{
|
|
cibuildwheel --print-build-identifiers --platform linux \
|
|
| pyp 'json.dumps({"only": x, "os": "ubuntu-latest"})' \
|
|
&& cibuildwheel --print-build-identifiers --platform macos \
|
|
| pyp 'json.dumps({"only": x, "os": "macos-latest"})' \
|
|
&& cibuildwheel --print-build-identifiers --platform windows \
|
|
| pyp 'json.dumps({"only": x, "os": "windows-latest"})'
|
|
} | pyp 'json.dumps(list(map(json.loads, lines)))' > /tmp/matrix
|
|
env:
|
|
CIBW_ARCHS_LINUX: x86_64
|
|
CIBW_ARCHS_MACOS: x86_64 arm64
|
|
CIBW_ARCHS_WINDOWS: AMD64
|
|
- name: generate matrix (PR)
|
|
if: github.event_name == 'pull_request'
|
|
run: |
|
|
{
|
|
cibuildwheel --print-build-identifiers --platform linux \
|
|
| pyp 'json.dumps({"only": x, "os": "ubuntu-latest"})'
|
|
} | pyp 'json.dumps(list(map(json.loads, lines)))' > /tmp/matrix
|
|
env:
|
|
CIBW_BUILD: "cp39-* cp313-*"
|
|
CIBW_ARCHS_LINUX: x86_64
|
|
- id: set-matrix
|
|
run: echo "include=$(cat /tmp/matrix)" | tee -a $GITHUB_OUTPUT
|
|
|
|
mypyc:
|
|
name: mypyc wheels ${{ matrix.only }}
|
|
needs: generate_wheels_matrix
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include: ${{ fromJson(needs.generate_wheels_matrix.outputs.include) }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
# Keep cibuildwheel version in sync with above
|
|
- uses: pypa/cibuildwheel@v2.23.3
|
|
with:
|
|
only: ${{ matrix.only }}
|
|
|
|
- name: Upload wheels as workflow artifacts
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: ${{ matrix.only }}-mypyc-wheels
|
|
path: ./wheelhouse/*.whl
|
|
|
|
- if: github.event_name == 'release'
|
|
name: Upload wheels to PyPI via Twine
|
|
env:
|
|
TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }}
|
|
run: pipx run twine upload --verbose -u '__token__' wheelhouse/*.whl
|
|
|
|
update-stable-branch:
|
|
name: Update stable branch
|
|
needs: [main, mypyc]
|
|
runs-on: ubuntu-latest
|
|
if: github.event_name == 'release'
|
|
permissions:
|
|
contents: write
|
|
|
|
steps:
|
|
- name: Checkout stable branch
|
|
uses: actions/checkout@v4
|
|
with:
|
|
ref: stable
|
|
fetch-depth: 0
|
|
|
|
- if: github.event_name == 'release'
|
|
name: Update stable branch to release tag & push
|
|
run: |
|
|
git reset --hard ${{ github.event.release.tag_name }}
|
|
git push
|