chore: add "Verify Release" workflow to automate post-release checks#10393
Open
paulbalandan wants to merge 1 commit into
Open
chore: add "Verify Release" workflow to automate post-release checks#10393paulbalandan wants to merge 1 commit into
paulbalandan wants to merge 1 commit into
Conversation
5 tasks
michalsn
approved these changes
Jul 8, 2026
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Release day currently ends with a manual babysitting checklist: watch "Deploy Distributable Repos" until the three distributable repos update, run the appstarter smoke-test commands locally, then click through the user guide workflows and check that the ePub landed. This PR replaces all of that with a single workflow.
New
.github/workflows/verify-release.yml("Verify Release"), triggered onrelease: publishedand manually via "Run workflow" with a tag input (for re-runs or verifying an existing release). Three jobs:event=releaseandcreated>=the release's publish time so a stale earlier run can never produce a false pass, and fails if the run does not succeed. On manual dispatch, the publish time is resolved from the tag via the API.codeigniter4/frameworkversion (with a generous polling budget for propagation lag), then runscomposer create-project codeigniter4/appstarter, asserts the installed framework is exactlyv4.x.x, and runs the appstarter test suite. This encodes the smoke-test commands from RELEASE.md.CodeIgniter4.x.x.epubin the userguide repo and for the successful completion of the "Deploy Production" and "pages build and deployment" runs since the release was published. (The latter is the actual run name; the RELEASE.md checklist linked apages-build-deploymentslug that does not match the run names returned by the API.)admin/RELEASE.md: the three manual verification checklist items are replaced by one "watch Verify Release" item describing what the workflow covers and how to re-run it.
Verification done so far: every check was executed locally against the real v4.7.4 release, including a full
create-project+ version assertion +composer test(all passing), the dispatch-mode publish-time fallback, YAML validation, and shellcheck over everyrunblock. The workflow itself cannot execute until it exists on the default branch, so after merging, running it via "Run workflow" withv4.7.4gives the true end-to-end test and is expected to pass.Checklist: