Update Hugo to v0.156.0 (#274) #324
Workflow file for this run
This file contains hidden or 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: | |
| push: | |
| tags: | |
| - "v*" | |
| schedule: | |
| - cron: "0 0 * * 1" | |
| env: | |
| FORCE_COLOR: 3 | |
| CIBW_BUILD_FRONTEND: "build" | |
| CIBW_BUILD: "cp312-*" | |
| CIBW_SKIP: "pp* *musllinux*" | |
| permissions: {} | |
| jobs: | |
| sdist: | |
| name: sdist | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: 3.13 | |
| - name: Build source distribution | |
| run: pipx run build --sdist --outdir dist/ | |
| - name: Check sdist size, fail if it exceeds 10 MiB | |
| run: | | |
| MAX_SIZE_MB=10 | |
| SDIST=$(ls dist/*.tar.gz) | |
| SIZE=$(stat --format=%s "$SDIST") | |
| SIZE_MB=$(awk "BEGIN {printf \"%.2f\", $SIZE / 1048576}") | |
| echo "sdist size: ${SIZE_MB} MB" | |
| if [ "$SIZE" -gt $((MAX_SIZE_MB * 1048576)) ]; then | |
| echo "::error::sdist is ${SIZE_MB} MB, exceeding the ${MAX_SIZE_MB} MB limit" | |
| exit 1 | |
| fi | |
| - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: source_distribution | |
| path: dist | |
| if-no-files-found: error | |
| windows_amd64_wheels: | |
| name: amd64-windows | |
| runs-on: windows-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "1.25.4" | |
| cache: false | |
| - name: Install MinGW compiler(s) | |
| run: choco install mingw | |
| - uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| 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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_windows_amd64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| windows_arm64_wheels: # Not tested | |
| name: arm64-windows | |
| runs-on: windows-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "1.25.4" | |
| cache: false | |
| check-latest: true | |
| - name: Build binary distribution (wheel) on Windows (arm64) | |
| # We need to use cibuildwheel because it has experimental support for cross-compiling | |
| # to arm64 and setup-python does not have arm64 support on Windows right now | |
| uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| with: | |
| package-dir: . | |
| output-dir: wheelhouse | |
| # Cross-compile for arm64 target via Zig toolchain | |
| env: | |
| USE_ZIG: "1" | |
| GOOS: windows | |
| GOARCH: arm64 | |
| CIBW_BUILD: "cp312-*" | |
| CIBW_ARCHS_WINDOWS: ARM64 | |
| CIBW_BEFORE_BUILD_WINDOWS: "pip install delvewheel" | |
| CIBW_REPAIR_WHEEL_COMMAND_WINDOWS: delvewheel repair -w {dest_dir} {wheel} | |
| CIBW_TEST_SKIP: "*-win_arm64" | |
| - name: Upload wheels | |
| uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_windows_arm64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| windows_i686_wheels: | |
| name: i686-windows | |
| runs-on: windows-2025 | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "1.25.4" | |
| cache: false | |
| # Note: cibuildwheel will manage installing 32-bit Python on Windows. We | |
| # do not need to do that manually unless we use setup-python instead. | |
| - name: Build binary distribution (wheel) on Windows (i686) | |
| uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| with: | |
| package-dir: . | |
| output-dir: wheelhouse | |
| # Cross-compile for i686 target via Zig toolchain | |
| env: | |
| USE_ZIG: "1" | |
| GOOS: windows | |
| GOARCH: 386 | |
| CIBW_BUILD: "cp312-*" | |
| CIBW_ARCHS_WINDOWS: x86 | |
| 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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_windows_i686 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| linux_amd64_wheels: | |
| name: amd64-manylinux | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| with: | |
| package-dir: . | |
| output-dir: wheelhouse | |
| env: | |
| CIBW_ARCHS_LINUX: x86_64 | |
| CIBW_BEFORE_ALL_LINUX: | | |
| tarball="go1.25.4.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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_linux_amd64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| linux_arm64_wheels: | |
| name: arm64-manylinux | |
| runs-on: ubuntu-22.04-arm | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| with: | |
| package-dir: . | |
| output-dir: wheelhouse | |
| env: | |
| CIBW_ARCHS_LINUX: aarch64 | |
| CIBW_BEFORE_ALL_LINUX: | | |
| tarball="go1.25.4.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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_linux_aarch64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| linux_s390x_wheels: | |
| name: s390x-manylinux | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 | |
| with: | |
| platforms: all | |
| # This should be temporary | |
| # xref https://github.com/docker/setup-qemu-action/issues/188 | |
| # xref https://github.com/tonistiigi/binfmt/issues/215 | |
| image: tonistiigi/binfmt:qemu-v8.1.5 | |
| - name: Build binary distribution (wheel) on Linux (s390x) | |
| uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| with: | |
| package-dir: . | |
| output-dir: wheelhouse | |
| env: | |
| CIBW_ARCHS_LINUX: s390x | |
| CIBW_BEFORE_ALL_LINUX: | | |
| tarball="go1.25.4.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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_linux_s390x | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| linux_ppc64le_wheels: | |
| name: ppc64le-manylinux | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: docker/setup-qemu-action@ce360397dd3f832beb865e1373c09c0e9f86d70a # v4.0.0 | |
| with: | |
| platforms: all | |
| # This should be temporary | |
| # xref https://github.com/docker/setup-qemu-action/issues/188 | |
| # xref https://github.com/tonistiigi/binfmt/issues/215 | |
| image: tonistiigi/binfmt:qemu-v8.1.5 | |
| - name: Build binary distribution (wheel) on Linux (ppc64le) | |
| uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| with: | |
| package-dir: . | |
| output-dir: wheelhouse | |
| env: | |
| CIBW_ARCHS_LINUX: ppc64le | |
| CIBW_BEFORE_ALL_LINUX: | | |
| tarball="go1.25.4.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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_linux_ppc64le | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| macos_amd64_wheels: | |
| name: amd64-macos | |
| runs-on: macos-15-intel | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "1.25.4" | |
| cache: false | |
| check-latest: true | |
| - uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| 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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_macos_x86_64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| macos_arm64_wheels: | |
| name: arm64-macos | |
| runs-on: macos-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| submodules: recursive | |
| - uses: actions/setup-go@4b73464bb391d4059bd26b0524d20df3927bd417 # v6.3.0 | |
| with: | |
| go-version: "1.25.4" | |
| cache: false | |
| check-latest: true | |
| - uses: pypa/cibuildwheel@ee02a1537ce3071a004a6b08c41e72f0fdc42d9a # v3.4.0 | |
| 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@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 | |
| with: | |
| name: wheels_macos_arm64 | |
| path: ./wheelhouse/*.whl | |
| if-no-files-found: error | |
| publish: | |
| needs: | |
| [ | |
| sdist, | |
| windows_amd64_wheels, | |
| windows_arm64_wheels, | |
| windows_i686_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: | |
| id-token: write # Required by OIDC to publish to PyPI and by Sigstore to sign artifacts | |
| contents: write # Required to upload signed artifacts to a GitHub release | |
| attestations: write # Required to generate build provenance attestations | |
| runs-on: ubuntu-latest | |
| if: startsWith(github.ref, 'refs/tags/') | |
| steps: | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | |
| with: | |
| path: upload/ | |
| merge-multiple: true | |
| - uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # v1.13.0 | |
| 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@a5caf349bc536fbef3668a10ed7f5cd309a4b53d # v3.2.0 | |
| with: | |
| inputs: >- | |
| ./upload/*.whl | |
| ./upload/*.tar.gz | |
| - name: Generate artifact attestation(s) | |
| uses: actions/attest-build-provenance@a2bbfa25375fe432b6a289bc6b6cd05ecd0c4c32 # v4.1.0 | |
| with: | |
| subject-path: | | |
| upload/*.whl | |
| upload/*.tar.gz | |
| - name: Create GitHub Release and upload artifacts | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # Create a draft release and upload all artifacts (wheels, sdist, and | |
| # Sigstore signatures), then publish — the release becomes immutable | |
| # once it is no longer a draft | |
| gh release create "${GITHUB_REF_NAME}" upload/* \ | |
| --draft \ | |
| --generate-notes | |
| gh release edit "${GITHUB_REF_NAME}" --draft=false |