d0aab9212a
test release tool / test-release-tool (macOS-latest, 3.12) (push) Waiting to run
test release tool / test-release-tool (macOS-latest, 3.13) (push) Waiting to run
test release tool / test-release-tool (macOS-latest, 3.14) (push) Waiting to run
test release tool / test-release-tool (macOS-latest, 3.15) (push) Waiting to run
docker / build (linux/arm64) (push) Waiting to run
docker / push (push) Blocked by required conditions
docs / docs (windows-latest) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.12) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.13) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.14) (push) Waiting to run
test release tool / test-release-tool (windows-latest, 3.15) (push) Waiting to run
test / test (macOS-latest, 3.10) (push) Waiting to run
test / test (macOS-latest, 3.11) (push) Waiting to run
test / test (macOS-latest, 3.12.10) (push) Waiting to run
test / test (macOS-latest, 3.13) (push) Waiting to run
test / test (macOS-latest, 3.14) (push) Waiting to run
test / test (macOS-latest, 3.15) (push) Waiting to run
test / test (macOS-latest, pypy3.11-v7.3.22) (push) Waiting to run
test / test (windows-11-arm, 3.11) (push) Waiting to run
test / test (windows-11-arm, 3.12.10) (push) Waiting to run
test / test (windows-11-arm, 3.13) (push) Waiting to run
test / test (windows-11-arm, 3.14) (push) Waiting to run
test / test (windows-11-arm, 3.15) (push) Waiting to run
test / test (windows-latest, 3.10) (push) Waiting to run
test / test (windows-latest, 3.11) (push) Waiting to run
test / test (windows-latest, 3.12.10) (push) Waiting to run
test / test (windows-latest, 3.13) (push) Waiting to run
test / test (windows-latest, 3.14) (push) Waiting to run
test / test (windows-latest, 3.15) (push) Waiting to run
test / test (windows-latest, pypy3.11-v7.3.22) (push) Waiting to run
test / coveralls-finish (push) Blocked by required conditions
test / uvloop (macOS-latest) (push) Waiting to run
test / uvloop (windows-11-arm) (push) Waiting to run
test / uvloop (windows-latest) (push) Waiting to run
fuzz / fuzz (3.11) (push) Failing after 1s
fuzz / fuzz (3.12) (push) Failing after 1s
build and publish / sdist + pure wheel (push) Failing after 0s
diff-shades / analysis / base / ${{ matrix.mode }} (push) Has been skipped
diff-shades / compare / ${{ matrix.mode }} (push) Waiting to run
docs / docs (ubuntu-latest) (push) Failing after 2s
fuzz / fuzz (3.10) (push) Failing after 1s
fuzz / fuzz (3.14) (push) Failing after 0s
lint and format / lint (push) Failing after 1s
build and publish / publish-mypyc (push) Waiting to run
diff-shades / configure (push) Failing after 1s
docker / build (linux/amd64) (push) Has been skipped
diff-shades / analysis / target / ${{ matrix.mode }} (push) Has been skipped
fuzz / fuzz (3.13) (push) Failing after 0s
fuzz / create-issue (push) Waiting to run
build and publish / generate wheels matrix (push) Failing after 0s
test release tool / test-release-tool (ubuntu-latest, 3.13) (push) Failing after 1s
build and publish / mypyc wheels ${{ matrix.only }} (push) Has been skipped
build and publish / publish-hatch (push) Waiting to run
test / test (ubuntu-latest, 3.10) (push) Failing after 0s
test / test (ubuntu-latest, 3.11) (push) Failing after 1s
test / test (ubuntu-latest, 3.13) (push) Failing after 0s
test / test (ubuntu-latest, pypy3.11-v7.3.22) (push) Failing after 1s
test / test (ubuntu-latest, 3.15) (push) Failing after 1s
test release tool / test-release-tool (ubuntu-latest, 3.15) (push) Failing after 0s
zizmor / zizmor (push) Failing after 0s
test release tool / test-release-tool (ubuntu-latest, 3.12) (push) Failing after 4s
test release tool / test-release-tool (ubuntu-latest, 3.14) (push) Failing after 3s
test / uvloop (ubuntu-latest) (push) Failing after 1s
test / test (ubuntu-latest, 3.14) (push) Failing after 1s
test / test (ubuntu-latest, 3.12.10) (push) Failing after 5s
161 lines
5.1 KiB
YAML
161 lines
5.1 KiB
YAML
name: build and publish
|
|
|
|
on:
|
|
release:
|
|
types: published
|
|
pull_request:
|
|
push:
|
|
branches: main
|
|
|
|
permissions: {}
|
|
|
|
env:
|
|
PROJECT: https://pypi.org/p/black
|
|
|
|
jobs:
|
|
configure:
|
|
name: generate wheels matrix
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
include: ${{ steps.set-matrix.outputs.include }}
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
with:
|
|
python-version: "3.14"
|
|
pip-version: "25.3"
|
|
pip-install: --group cibw
|
|
|
|
- name: generate matrix
|
|
if: |
|
|
github.event_name != 'pull_request' || contains(github.event.pull_request.labels.*.name, 'ci: build all wheels')
|
|
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"})' \
|
|
&& cibuildwheel --print-build-identifiers --platform windows --archs ARM64 \
|
|
| pyp 'json.dumps({"only": x, "os": "windows-11-arm"})'
|
|
} | 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' && !contains(github.event.pull_request.labels.*.name, 'ci: build all wheels')
|
|
run: |
|
|
{
|
|
CIBW_BUILD="cp310-*" cibuildwheel --print-build-identifiers --platform linux | pyp 'json.dumps({"only": x, "os": "ubuntu-latest"})'
|
|
CIBW_BUILD="cp314-*" 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
|
|
|
|
- id: set-matrix
|
|
run: echo "include=$(cat /tmp/matrix)" | tee -a $GITHUB_OUTPUT
|
|
|
|
mypyc:
|
|
name: mypyc wheels ${{ matrix.only }}
|
|
needs: configure
|
|
runs-on: ${{ matrix.os }}
|
|
strategy:
|
|
matrix:
|
|
include: ${{ fromJson(needs.configure.outputs.include) }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
with:
|
|
python-version: "3.14"
|
|
pip-version: "25.3"
|
|
pip-install: --group cibw
|
|
|
|
- name: Run cibuildwheel
|
|
run: cibuildwheel . --only ${{ matrix.only }}
|
|
|
|
- name: Upload wheels as workflow artifacts
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
name: ${{ matrix.only }}-mypyc-wheels
|
|
path: wheelhouse/
|
|
|
|
hatch:
|
|
name: sdist + pure wheel
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
with:
|
|
persist-credentials: false
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
|
|
with:
|
|
python-version: "3.14"
|
|
pip-version: "25.3"
|
|
pip-install: --group hatch
|
|
|
|
- name: Build wheel and source distributions
|
|
run: python -m hatch build
|
|
|
|
- name: Store the distribution packages
|
|
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
with:
|
|
name: sdist-and-pure-wheel
|
|
path: dist/
|
|
|
|
publish-mypyc:
|
|
if: github.event_name == 'release'
|
|
needs: mypyc
|
|
runs-on: ubuntu-latest
|
|
environment:
|
|
name: release
|
|
url: ${{ env.PROJECT }}
|
|
permissions:
|
|
id-token: write # Required for PyPI trusted publishing
|
|
steps:
|
|
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
pattern: "*-mypyc-wheels"
|
|
path: wheelhouse/
|
|
merge-multiple: true
|
|
|
|
- name: Publish package distributions to PyPI
|
|
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
with:
|
|
packages-dir: wheelhouse/
|
|
verbose: true
|
|
|
|
publish-hatch:
|
|
if: github.event_name == 'release'
|
|
needs: hatch
|
|
runs-on: ubuntu-latest
|
|
environment:
|
|
name: release
|
|
url: ${{ env.PROJECT }}
|
|
permissions:
|
|
id-token: write # Required for PyPI trusted publishing
|
|
steps:
|
|
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
with:
|
|
name: sdist-and-pure-wheel
|
|
path: dist/
|
|
|
|
- name: Publish package distributions to PyPI
|
|
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
|
|
with:
|
|
verbose: true
|