aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/wheels.yml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/wheels.yml')
-rw-r--r--.github/workflows/wheels.yml73
1 files changed, 15 insertions, 58 deletions
diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml
index 83c5bbf..7544b24 100644
--- a/.github/workflows/wheels.yml
+++ b/.github/workflows/wheels.yml
@@ -18,7 +18,7 @@ jobs:
- name: Install Python 3.12
uses: actions/setup-python@v5
with:
- python-version: 3.12
+ python-version: "3.12"
- run: python -m pip install build
- name: Build sdist
run: python -m build --sdist
@@ -40,68 +40,23 @@ jobs:
with:
fetch-depth: 0
+ - uses: actions/setup-python@v5
+ name: Install Python 3.12
+ with:
+ python-version: "3.12"
+ - run: pip install --upgrade pip uv
+
- name: Set up QEMU
if: runner.os == 'Linux'
uses: docker/setup-qemu-action@v3
with:
platforms: all
- - name: Build 3.8 wheels on ${{ matrix.os }} using cibuildwheel
- uses: pypa/cibuildwheel@v2.20
- env:
- CIBW_BUILD: "cp38-*"
- CIBW_SKIP: "*-musllinux_*"
- CIBW_TEST_SKIP: "cp38-macosx_*:arm64"
- CIBW_ARCHS_LINUX: auto64 aarch64
- CIBW_ARCHS_WINDOWS: auto64
- CIBW_BEFORE_ALL_LINUX: bash .github/install_bazel.sh
- # Grab the rootless Bazel installation inside the container.
- CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/bin
- CIBW_TEST_COMMAND: python {project}/bindings/python/google_benchmark/example.py
-
- - name: Build 3.9 wheels on ${{ matrix.os }} using cibuildwheel
- uses: pypa/cibuildwheel@v2.20
- env:
- CIBW_BUILD: "cp39-*"
- CIBW_SKIP: "*-musllinux_*"
- CIBW_TEST_SKIP: "cp38-macosx_*:arm64"
- CIBW_ARCHS_LINUX: auto64 aarch64
- CIBW_ARCHS_WINDOWS: auto64
- CIBW_BEFORE_ALL_LINUX: bash .github/install_bazel.sh
- # Grab the rootless Bazel installation inside the container.
- CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/bin
- CIBW_TEST_COMMAND: python {project}/bindings/python/google_benchmark/example.py
-
- - name: Build 3.10 wheels on ${{ matrix.os }} using cibuildwheel
+ - name: Build wheels on ${{ matrix.os }} using cibuildwheel
uses: pypa/cibuildwheel@v2.20
env:
- CIBW_BUILD: "cp310-*"
- CIBW_SKIP: "*-musllinux_*"
- CIBW_TEST_SKIP: "cp38-macosx_*:arm64"
- CIBW_ARCHS_LINUX: auto64 aarch64
- CIBW_ARCHS_WINDOWS: auto64
- CIBW_BEFORE_ALL_LINUX: bash .github/install_bazel.sh
- # Grab the rootless Bazel installation inside the container.
- CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/bin
- CIBW_TEST_COMMAND: python {project}/bindings/python/google_benchmark/example.py
-
- - name: Build 3.11 wheels on ${{ matrix.os }} using cibuildwheel
- uses: pypa/cibuildwheel@v2.20
- env:
- CIBW_BUILD: "cp311-*"
- CIBW_SKIP: "*-musllinux_*"
- CIBW_TEST_SKIP: "cp38-macosx_*:arm64"
- CIBW_ARCHS_LINUX: auto64 aarch64
- CIBW_ARCHS_WINDOWS: auto64
- CIBW_BEFORE_ALL_LINUX: bash .github/install_bazel.sh
- # Grab the rootless Bazel installation inside the container.
- CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/bin
- CIBW_TEST_COMMAND: python {project}/bindings/python/google_benchmark/example.py
-
- - name: Build 3.12 wheels on ${{ matrix.os }} using cibuildwheel
- uses: pypa/cibuildwheel@v2.20
- env:
- CIBW_BUILD: "cp312-*"
+ CIBW_BUILD: "cp310-* cp311-* cp312-*"
+ CIBW_BUILD_FRONTEND: "build[uv]"
CIBW_SKIP: "*-musllinux_*"
CIBW_TEST_SKIP: "cp38-macosx_*:arm64"
CIBW_ARCHS_LINUX: auto64 aarch64
@@ -110,6 +65,8 @@ jobs:
# Grab the rootless Bazel installation inside the container.
CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/bin
CIBW_TEST_COMMAND: python {project}/bindings/python/google_benchmark/example.py
+ # unused by Bazel, but needed explicitly by delocate on MacOS.
+ MACOSX_DEPLOYMENT_TARGET: "10.14"
- name: Upload Google Benchmark ${{ matrix.os }} wheels
uses: actions/upload-artifact@v4
@@ -133,11 +90,11 @@ jobs:
name: Publish google-benchmark wheels to PyPI
needs: [merge_wheels]
runs-on: ubuntu-latest
+ if: github.event_name == 'release' && github.event.action == 'published'
+ permissions:
+ id-token: write
steps:
- uses: actions/download-artifact@v4
with:
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
- with:
- user: __token__
- password: ${{ secrets.PYPI_PASSWORD }}