CD #111
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CD | |
on: | |
workflow_dispatch: | |
release: | |
types: | |
- published | |
schedule: | |
- cron: '0 0 * * 1' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
FORCE_COLOR: 3 | |
CIBW_BUILD_VERBOSITY: 2 | |
CIBW_BUILD_FRONTEND: "build" | |
CIBW_BUILD: "cp312-*" | |
CIBW_SKIP: "pp* *musllinux*" | |
CIBW_MANYLINUX_X86_64_IMAGE: "manylinux_2_28" | |
CIBW_MANYLINUX_AARCH64_IMAGE: "manylinux_2_28" | |
jobs: | |
sdist: | |
name: sdist | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # v5.1.0 | |
with: | |
python-version: 3.12 | |
- name: Build source distribution | |
run: pipx run build --sdist --outdir dist/ | |
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: source_distribution | |
path: dist | |
if-no-files-found: error | |
windows_amd64_wheels: | |
name: amd64-windows | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 | |
with: | |
go-version: '1.22.2' | |
cache: false | |
- name: Install MinGW compiler(s) | |
run: choco install mingw | |
- uses: pypa/cibuildwheel@932529cab190fafca8c735a551657247fa8f8eaf # v2.19.1 | |
with: | |
package-dir: . | |
output-dir: wheelhouse | |
env: | |
CIBW_ARCHS_WINDOWS: AMD64 | |
CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel" | |
CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: delvewheel repair -w {dest_dir} {wheel} | |
CIBW_TEST_COMMAND: | | |
hugo version | |
hugo env --logLevel debug | |
- name: Upload wheels | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: wheels_windows_amd64 | |
path: ./wheelhouse/*.whl | |
if-no-files-found: error | |
linux_amd64_wheels: | |
name: amd64-manylinux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: pypa/cibuildwheel@932529cab190fafca8c735a551657247fa8f8eaf # v2.19.1 | |
with: | |
package-dir: . | |
output-dir: wheelhouse | |
env: | |
CIBW_ARCHS_LINUX: x86_64 | |
CIBW_BEFORE_ALL_LINUX: | | |
tarball="go1.22.2.linux-amd64.tar.gz" | |
curl -LJO https://golang.org/dl/$tarball | |
mkdir $HOME/go_installed/ | |
tar -C $HOME/go_installed/ -xzf $tarball | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bashrc | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bash_profile | |
go version | |
CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/go_installed/go/bin | |
CIBW_TEST_COMMAND: | | |
hugo version | |
hugo env --logLevel debug | |
- name: Upload wheels | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: wheels_linux_amd64 | |
path: ./wheelhouse/*.whl | |
if-no-files-found: error | |
linux_arm64_wheels: | |
name: arm64-manylinux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 | |
with: | |
platforms: all | |
- uses: pypa/cibuildwheel@932529cab190fafca8c735a551657247fa8f8eaf # v2.19.1 | |
with: | |
package-dir: . | |
output-dir: wheelhouse | |
env: | |
CIBW_ARCHS_LINUX: aarch64 | |
CIBW_BEFORE_ALL_LINUX: | | |
tarball="go1.22.2.linux-arm64.tar.gz" | |
curl -LJO https://golang.org/dl/$tarball | |
mkdir $HOME/go_installed/ | |
tar -C $HOME/go_installed/ -xzf $tarball | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bashrc | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bash_profile | |
go version | |
CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/go_installed/go/bin | |
CIBW_TEST_COMMAND: | | |
hugo version | |
hugo env --logLevel debug | |
- name: Upload wheels | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: wheels_linux_aarch64 | |
path: ./wheelhouse/*.whl | |
if-no-files-found: error | |
linux_s390x_wheels: | |
name: s390x-manylinux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 | |
with: | |
platforms: all | |
- name: Build binary distribution (wheel) on Linux (s390x) | |
uses: pypa/cibuildwheel@932529cab190fafca8c735a551657247fa8f8eaf # v2.19.1 | |
with: | |
package-dir: . | |
output-dir: wheelhouse | |
env: | |
CIBW_ARCHS_LINUX: s390x | |
CIBW_BEFORE_ALL_LINUX: | | |
tarball="go1.22.2.linux-s390x.tar.gz" | |
curl -LJO https://golang.org/dl/$tarball | |
mkdir $HOME/go_installed/ | |
tar -C $HOME/go_installed/ -xzf $tarball | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bashrc | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bash_profile | |
go version | |
CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/go_installed/go/bin | |
CIBW_TEST_COMMAND: | | |
hugo version | |
hugo env --logLevel debug | |
- name: Upload wheels | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: wheels_linux_s390x | |
path: ./wheelhouse/*.whl | |
if-no-files-found: error | |
linux_ppc64le_wheels: | |
name: ppc64le-manylinux | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: docker/setup-qemu-action@68827325e0b33c7199eb31dd4e31fbe9023e06e3 # v3.0.0 | |
with: | |
platforms: all | |
- name: Build binary distribution (wheel) on Linux (ppc64le) | |
uses: pypa/cibuildwheel@932529cab190fafca8c735a551657247fa8f8eaf # v2.19.1 | |
with: | |
package-dir: . | |
output-dir: wheelhouse | |
env: | |
CIBW_ARCHS_LINUX: ppc64le | |
CIBW_BEFORE_ALL_LINUX: | | |
tarball="go1.22.2.linux-ppc64le.tar.gz" | |
curl -LJO https://golang.org/dl/$tarball | |
mkdir $HOME/go_installed/ | |
tar -C $HOME/go_installed/ -xzf $tarball | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bashrc | |
export PATH=$PATH:$HOME/go_installed/go/bin >> ~/.bash_profile | |
go version | |
CIBW_ENVIRONMENT_LINUX: PATH=$PATH:$HOME/go_installed/go/bin | |
CIBW_TEST_COMMAND: | | |
hugo version | |
hugo env --logLevel debug | |
- name: Upload wheels | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: wheels_linux_ppc64le | |
path: ./wheelhouse/*.whl | |
if-no-files-found: error | |
macos_amd64_wheels: | |
name: amd64-macos | |
runs-on: macos-13 | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 | |
with: | |
go-version: '1.22.2' | |
cache: false | |
check-latest: true | |
- uses: pypa/cibuildwheel@932529cab190fafca8c735a551657247fa8f8eaf # v2.19.1 | |
with: | |
package-dir: . | |
output-dir: wheelhouse | |
env: | |
CIBW_ARCHS_MACOS: x86_64 | |
CIBW_TEST_COMMAND: | | |
hugo version | |
hugo env --logLevel debug | |
- name: Upload wheels | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: wheels_macos_x86_64 | |
path: ./wheelhouse/*.whl | |
if-no-files-found: error | |
macos_arm64_wheels: | |
name: arm64-macos | |
runs-on: macos-14 | |
steps: | |
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 | |
- uses: actions/setup-go@cdcb36043654635271a94b9a6d1392de5bb323a7 # v5.0.1 | |
with: | |
go-version: '1.22.2' | |
cache: false | |
check-latest: true | |
- uses: pypa/cibuildwheel@932529cab190fafca8c735a551657247fa8f8eaf # v2.19.1 | |
with: | |
package-dir: . | |
output-dir: wheelhouse | |
env: | |
CIBW_ARCHS_MACOS: arm64 | |
CIBW_TEST_COMMAND: | | |
hugo version | |
hugo env --logLevel debug | |
- name: Upload wheels | |
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
with: | |
name: wheels_macos_arm64 | |
path: ./wheelhouse/*.whl | |
if-no-files-found: error | |
publish: | |
needs: [ | |
sdist, | |
windows_amd64_wheels, | |
macos_amd64_wheels, | |
macos_arm64_wheels, | |
linux_amd64_wheels, | |
linux_arm64_wheels, | |
linux_s390x_wheels, | |
linux_ppc64le_wheels | |
] | |
name: Publish to PyPI or TestPyPI | |
environment: release | |
permissions: | |
# Required by OIDC to publish to PyPI and by Sigstore to sign artifacts | |
id-token: write | |
# Required to upload artifacts to a GitHub release identifier | |
contents: write | |
runs-on: ubuntu-latest | |
if: github.event_name == 'release' && github.event.action == 'published' | |
steps: | |
- name: Download all artifacts | |
uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7 | |
with: | |
path: upload/ | |
merge-multiple: true | |
- uses: pypa/gh-action-pypi-publish@81e9d935c883d0b210363ab89cf05f3894778450 # v1.8.14 | |
if: github.event_name == 'release' && github.event.action == 'published' | |
with: | |
# Comment this line out to publish to PyPI | |
# repository-url: https://test.pypi.org/legacy/ | |
packages-dir: upload | |
- name: Sign artifacts with Sigstore | |
uses: sigstore/gh-action-sigstore-python@61f6a500bbfdd9a2a339cf033e5421951fbc1cd2 # v2.1.1 | |
with: | |
inputs: >- | |
./upload/*.whl | |
./upload/*.tar.gz | |
- name: Publish to GitHub Releases | |
uses: softprops/action-gh-release@69320dbe05506a9a39fc8ae11030b214ec2d1f87 # v2.0.5 | |
if: github.event_name == 'release' && github.event.action == 'published' | |
with: | |
# This will contain not only the wheel and sdist, but also the signature files | |
# generated by the Sigstore action | |
files: upload/* |