Skip to content

Commit

Permalink
Streamlined the action for PyPI publication.
Browse files Browse the repository at this point in the history
  • Loading branch information
LTLA committed Dec 15, 2024
1 parent cb546b7 commit 65da379
Showing 1 changed file with 15 additions and 99 deletions.
114 changes: 15 additions & 99 deletions .github/workflows/pypi-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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/[email protected]
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/[email protected]
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/[email protected]
# 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
Expand All @@ -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
Expand All @@ -140,7 +57,6 @@ jobs:
path: dist
merge-multiple: true

- uses: pypa/[email protected]
with:
user: __token__
password: ${{ secrets.PYPI_PASSWORD }}
# This uses the trusted publisher workflow so no token is required.
- name: Publish to PyPI
uses: pypa/[email protected]

0 comments on commit 65da379

Please sign in to comment.