From 65da379738ec0abb2d5a765d4e32952a5187c944 Mon Sep 17 00:00:00 2001 From: LTLA Date: Sun, 15 Dec 2024 13:21:10 -0800 Subject: [PATCH] Streamlined the action for PyPI publication. --- .github/workflows/pypi-publish.yml | 114 ++++------------------------- 1 file changed, 15 insertions(+), 99 deletions(-) diff --git a/.github/workflows/pypi-publish.yml b/.github/workflows/pypi-publish.yml index 6b2f949..7428a64 100644 --- a/.github/workflows/pypi-publish.yml +++ b/.github/workflows/pypi-publish.yml @@ -6,114 +6,31 @@ on: - "*" jobs: - build_linux_x86_64: - name: Build wheels for linux x86_64 - runs-on: ubuntu-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 + build_wheels: + name: Build wheels on ${{ matrix.os }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + # macos-13 is an intel runner, higher macos's are apple silicon + # At some point, maybe get this to work on windows-latest + os: [ubuntu-latest, macos-13, macos-latest] - - name: Build wheels - uses: pypa/cibuildwheel@v2.16.2 - env: - CIBW_ARCHS: x86_64 - CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9" - CIBW_MANYLINUX_X86_64_IMAGE: ghcr.io/artifactdb/prebuilt-hdf5/manylinux_x86_64:0.0.4 - CIBW_MUSLLINUX_X86_64_IMAGE: ghcr.io/artifactdb/prebuilt-hdf5/musllinux_x86_64:0.0.4 - CIBW_SKIP: pp* - - - uses: actions/upload-artifact@v4 - with: - name: cibw-wheels-ubuntu-x86_64 - path: ./wheelhouse/*.whl - - build_macosx_x86_64: - name: Build wheels for macosx x86_64 - runs-on: macos-13 steps: - name: Check out repository uses: actions/checkout@v4 - - name: Grab prebuilt dependencies - run: | - curl -L https://github.com/ArtifactDB/prebuilt-hdf5/releases/download/0.0.4/macosx_x86_64.tar.gz > bundle.tar.gz - tar -xvf bundle.tar.gz - - name: Build wheels - uses: pypa/cibuildwheel@v2.16.2 + uses: pypa/cibuildwheel@v2.22.0 env: - CIBW_ARCHS: x86_64 + CIBW_ARCHS_LINUX: x86_64 CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9" - CIBW_ENVIRONMENT: "MORE_CMAKE_OPTIONS=\"-DCMAKE_INSTALL_PREFIX=$(pwd)/installed -DCMAKE_OSX_ARCHITECTURES=x86_64\"" - CIBW_BUILD_VERBOSITY: 3 CIBW_SKIP: pp* - MACOSX_DEPLOYMENT_TARGET: 11.7 - uses: actions/upload-artifact@v4 with: - name: cibw-wheels-macos-x86_64 + name: cibw-wheels-${{ matrix.os }}-${{ strategy.job-index }} path: ./wheelhouse/*.whl - build_macosx_arm64: - name: Build wheels for macosx arm64 - runs-on: macos-latest - steps: - - name: Check out repository - uses: actions/checkout@v4 - - - name: Grab prebuilt dependencies - run: | - curl -L https://github.com/ArtifactDB/prebuilt-hdf5/releases/download/0.0.4-manual/macosx_arm64.tar.gz > bundle.tar.gz - tar -xvf bundle.tar.gz - - - name: Build wheels - uses: pypa/cibuildwheel@v2.16.2 - env: - CIBW_ARCHS: arm64 - CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9" - CIBW_ENVIRONMENT: "MORE_CMAKE_OPTIONS=\"-DCMAKE_INSTALL_PREFIX=$(pwd)/installed -DCMAKE_OSX_ARCHITECTURES=arm64\"" - CIBW_BUILD_VERBOSITY: 3 - MACOSX_DEPLOYMENT_TARGET: 13.0 - - - uses: actions/upload-artifact@v4 - with: - name: cibw-wheels-maxos_arm64 - path: ./wheelhouse/*.whl - -# build_windows_x86_64: -# name: Build wheels for windows x86_64 -# runs-on: windows-2019 -# steps: -# - name: Check out repository -# uses: actions/checkout@v4 -# -# - name: Grab prebuilt dependencies -# run: | -# curl -L https://github.com/ArtifactDB/prebuilt-hdf5/releases/download/0.0.4/windows_x86_64.tar.gz > bundle.tar.gz -# tar -xvf bundle.tar.gz -# shell: bash -# -# - name: Store path -# run: | -# $wd = pwd -# echo "INSTALL_DIR=$wd\\installed" >> $env:GITHUB_ENV -# shell: powershell -# -# - name: Build wheels -# uses: pypa/cibuildwheel@v2.16.2 -# env: -# CIBW_ARCHS: AMD64 -# CIBW_PROJECT_REQUIRES_PYTHON: ">=3.9" -# CIBW_ENVIRONMENT: "MORE_CMAKE_OPTIONS=\"-DCMAKE_INSTALL_PREFIX=${INSTALL_DIR}\" VERBOSE=1" -# CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel" -# CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: "delvewheel repair -w {dest_dir} {wheel}" -# CIBW_TEST_EXTRAS: "testing" -# CIBW_TEST_COMMAND: "pytest {package}/tests" -# CIBW_BUILD_VERBOSITY: 3 - # - uses: actions/upload-artifact@v3 - # with: - # path: ./wheelhouse/*.whl - build_sdist: name: Build source distribution runs-on: ubuntu-latest @@ -131,7 +48,7 @@ jobs: path: dist/*.tar.gz upload_pypi: - needs: [build_linux_x86_64, build_macosx_x86_64, build_macosx_arm64, build_sdist] + needs: [build_wheels, build_sdist] runs-on: ubuntu-latest steps: - uses: actions/download-artifact@v4 @@ -140,7 +57,6 @@ jobs: path: dist merge-multiple: true - - uses: pypa/gh-action-pypi-publish@v1.12.2 - with: - user: __token__ - password: ${{ secrets.PYPI_PASSWORD }} + # This uses the trusted publisher workflow so no token is required. + - name: Publish to PyPI + uses: pypa/gh-action-pypi-publish@v1.12.3