18 commits in all time
Mar 19, 2026 12:15 – Jun 17, 2026 12:15 UTC
fix: bump algokit-utils to 5.0.0b4 (#98)
407dd92d
main
1/3 ++ 3 --
ci: pin action SHAs to latest, fix devportal docs and retire alpha channel (#97)
## Summary This PR makes a few related CI/CD changes: 1. **Hardens the CI workflows** by pinning all third-party GitHub Actions to immutable commit SHAs and bumping them to their latest versions. 2. **Fixes versioned DevPortal docs publishing** so a `devportal-docs.tar.gz` asset is attached to each `vX.Y.Z` release, not only to the rolling `docs-latest` pre-release. 3. **Keeps the DevPortal docs current** by refreshing the rolling `docs-latest` build on every push to `main`. 4. **Retires the `alpha` prerelease channel**, so releases come only from `main` (beta) and `workflow_dispatch` (production). ## Changes ### CI security hardening - Pin all third-party actions to full commit SHAs (with `# vX` comments) instead of mutable tags in `build-python.yaml`, `cd.yaml`, `check-docs.yaml`, `check-python.yaml`, `gh-pages.yaml`, and `verify-examples.yaml`. `publish-devportal-docs.yml` was already SHA-pinned. First-party refs stay as-is per policy: `algorandfoundation/algokit-shared-config` reusable actions remain on `@main`, and the DevPortal action remains on `@release/ak-v4`. - Version bumps (all pinned to the corresponding SHA): `actions/checkout` v4 to v6, `actions/upload-artifact` v4 to v7, `actions/setup-python` v5 to v6, `actions/create-github-app-token` v2 to v3, `actions/upload-pages-artifact` and `actions/deploy-pages` v4 to v5, `astral-sh/setup-uv` v5 to v8, and `MishaKav/pytest-coverage-comment` v1.2.0 to v1.7.2. `python-semantic-release` is already on the latest (v10.5.3) and is SHA-pinned only. - Move `pypa/gh-action-pypi-publish` from the rolling `release/v1` branch to a pinned `v1.14.0` SHA. Updates now come via Dependabot or manual bumps. - Workflow `permissions` are intentionally left unchanged, to avoid altering the working release pipeline. ### DevPortal docs publishing - `publish-devportal-docs.yml`: drop the temporary `ci/add-publish-to-devportal-workflow` push trigger in favor of `push: branches: [main]`, and point the publish action at `release/ak-v4`. This refreshes the rolling `docs-latest` pre-release on every merge to `main`. Tag pushes (`v*`) continue to attach `devportal-docs.tar.gz` to the corresponding version release. - `pyproject.toml`: change the python-semantic-release `commit_message` from `[skip ci]` to `skip-checks: true`. `[skip ci]` on the release bump commit was suppressing the tag-push run of `publish-devportal-docs.yml`, so the versioned `devportal-docs.tar.gz` was never attached. Tag pushes now trigger the workflow and attach the tarball. ### Release channel cleanup - Retire the `alpha` prerelease channel. In `cd.yaml`: remove `alpha` from the push branches, drop the "Python Semantic Release - Alpha" step, and remove the `alpha` references from the PyPI-publish condition, the `run-name`, and the `publish-docs` guard. In `pyproject.toml`: remove `[tool.semantic_release.branches.alpha]` and the `release-dry-run-alpha` poe task. The release model becomes `main` to beta plus `workflow_dispatch` to production. - The existing `alpha` branch and the historical `v*-alpha.*` tags and releases are left in place. ## Why - Pinning actions to SHAs protects the supply chain against tag-retargeting attacks, and bumping to latest keeps runtimes (Node 24) and features current. Each bump was checked against this repo's usage; none introduce breaking changes for how the actions are used here. All workflows run on GitHub-hosted `ubuntu-latest`, so the higher minimum runner versions that the Node 24 bumps require are satisfied automatically. - The DevPortal importer pulls each library's "Latest" docs from the `docs-latest` release, which is only refreshed by non-tag runs. The workflow previously triggered on a temporary feature branch, so `docs-latest` went stale and the portal kept serving outdated docs. Triggering on `main` keeps it current. - A `[skip ci]` directive in a commit message suppresses every workflow for that push, including the tag push, because the tag points to the bump commit. That is why no `vX.Y.Z` release had a `devportal-docs.tar.gz`. `skip-checks: true` is not honored by GitHub Actions as a skip, so the tag push fires the docs workflow. - The `alpha` prerelease channel is being retired. Removing its triggers and release config stops further `*-alpha.*` publishes and CI runs on that branch, while leaving the existing alpha history intact.
d6dbc56a
main
10/67 ++ 72 --
chore: bump vulnerable deps
a8a7c8d2
ci/harden-workflows-cleanup-alpha
1/21 ++ 21 --
ci: add pip-audit dependency vulnerability check
a01c3d37
ci/harden-workflows-cleanup-alpha
1/8 ++ 0 --
Merge c1aaad8382b7bcd6561043034f02a3d063771576 into 5aec1b50f199d37d820a5d7d4fe4b56388d73ab6
99621874
pull/97/merge
10/38 ++ 51 --
ci: update setup node version in step name
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
c1aaad83
ci/harden-workflows-cleanup-alpha
1/1 ++ 1 --
Merge e41ee0f947248e91389a8053eff6adec4010cabd into 5aec1b50f199d37d820a5d7d4fe4b56388d73ab6
ba26bcea
pull/97/merge
10/37 ++ 50 --
ci: pin action SHAs to latest, fix devportal docs and retire alpha channel
e41ee0f9
ci/harden-workflows-cleanup-alpha
10/37 ++ 50 --
Merge 7a23de39fba7afaaaec507fdba26cca95056137a into 5aec1b50f199d37d820a5d7d4fe4b56388d73ab6
00ab849b
pull/97/merge
9/34 ++ 47 --
ci: pin action SHAs to latest, fix devportal docs and retire alpha channel
7a23de39
ci/harden-workflows-cleanup-alpha
9/34 ++ 47 --
2.0.0-beta.1
[skip ci] Automatically generated by python-semantic-release
5aec1b50
main
1/1 ++ 1 --
feat!: update algokit-utils-py to latest v5 beta (#87)
BREAKING CHANGE: update algokit-utils-py to latest v5 beta --------- Co-authored-by: Daniel McGregor <daniel.mcgregor@makerx.com.au> Co-authored-by: Neil Campbell <neil.campbell@makerx.com.au> Co-authored-by: Hoang Dinh <patrick.dinh@makerx.com.au> Co-authored-by: semantic-release <semantic-release> Co-authored-by: Luca Martini <luca.martini@algorand.foundation> Co-authored-by: mrcointreau <45950216+mrcointreau@users.noreply.github.com> Co-authored-by: David Rojas <lempira@gmail.com> Co-authored-by: David Rojas <lempira@users.noreply.github.com>
f8edad87
main
131/21,492 ++ 15,967 --
Merge 6ebb9f408cc825bc4ff59364683c60482a55e91c into 4f1c777ffd068eaf309dcac327b39206ec9e9306
ba07aa7e
pull/87/merge
131/21,492 ++ 15,967 --
chore: bump algokit-utils to the latest beta (#96)
6ebb9f40
alpha
3/117 ++ 11 --
Merge cf0272100db3fef3e5ad205b07e6df0788b8a508 into 123828ec9c96702a5f85bae829044d1d5874ba79
b938f8e8
pull/96/merge
3/117 ++ 11 --
chore: bump algokit-utils to the latest beta
cf027210
bump-algokit-utils-to-latest-beta
3/117 ++ 11 --