Repository navigation
Tell the relay laptops about every commit a deploy brings, and release 3.0.1 - #36
Merged
Merged
Conversation
…ts last The deploy's summary says when the relay laptops need their setup run again, and it decided by comparing the newest commit with the one before it. "Rebase and merge" brings a pull request's commits to main in one push, so that saw only the last of them: the 3.0.0 merge was twenty-seven commits, it changed scripts/setup-relay.ps1 in an early one, and the summary said nothing. It now compares with what was live before this deploy. The version the job remembers for a rollback is a Worker version, which names no commit, so the commit comes from the last Deploy run that succeeded, asked of GitHub (the workflow gains actions: read for it), with the last release tag behind it and a line in the summary when neither can be read. The checkout fetches all of history so the comparison reaches however far back that is. Over a range of commits the list under the note grew to every script changed, CI's own included; it now names only the files the trigger looks for, which are the ones that run on the laptops. Checked by running the step itself against the 3.0.0 commit: it compares with 2.11.0's and names scripts/setup-relay.ps1, falls back to v2.11.0 with the API unreadable, says nothing on a redeploy of the commit already live, and says it cannot tell when there is neither a deploy nor a tag to compare with.
The deploy workflow's comment on its concurrency group said its first line twice.
There was a problem hiding this comment.
🟡 Changes recommended
The workflow can select skipped or stale runs and report a SHA different from the deployed commit, causing incorrect comparisons that miss relay changes and suppress warnings.
3 open issues
What changed in this PR
This PR updates the deploy summary’s relay-update detection to cover multi-commit merges rather than only the newest commit.
Changes:
- Uses successful Deploy run history as the comparison baseline, with a release-tag fallback and a notice when no baseline is available.
- Fetches full Git history and limits the changed-file list to relay-related files.
- Documents the behavior and removes a duplicated workflow comment.
| File | Description |
|---|---|
| README.md | Describes relay-update detection across commits since the last successful deploy. |
| docs/handoff.md | Records the missed relay update and the new comparison approach. |
| CHANGELOG.md | Adds an Unreleased entry and relay setup guidance. |
| .github/workflows/deploy.yml | Adds baseline lookup, full-history checkout, fallback handling, and relay-file filtering. |
Review effort: Balanced
- package.json, its lock and the guide's RELEASE at 3.0.1. The changelog's Unreleased section becomes 3.0.1's, with a word on the release and its link reference, so scripts/ci/release-notes.mjs accepts it and the release workflow can tag it. - The guide's "What is new" card is titled by the release line, 3.0, not by the full version: 3.0.1 adds nothing to the dashboard, and the card would otherwise credit 3.0's features to it. The guide's own heading still names 3.0.1. - The handover's "Where things stand" says 3.0.1 is live.
Copilot's review: the relay note took "what was live" from the newest successful Deploy run, which can be the wrong commit - a run whose deploy job was skipped, a run GitHub records against a later commit than the one it deployed, or an older deploy re-run after a newer one. Each deploy now records its commit on the Worker version it makes (`--message "From commit <sha>"`, the short form as its tag), and the next one reads it back from the version serving before it changes anything (scripts/ci/worker-version.mjs --commit, beside the rollback target it already read). That is right after a rollback or a re-run too. A version deployed before this records nothing, and the note falls back to the last release tag, as before. The workflow no longer needs actions: read. worker-version.mjs's parsing is exported and tested, with a test that the workflow writes the message in the form the script reads back. The guide's test asserts the "What is new" heading exactly, so a heading naming the full version fails it. The changelog, the README and the handover say so. 909 unit tests.
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.


The deploy's summary says when the relay laptops need their setup run again. It decided by comparing the newest commit with the one before it, but "Rebase and merge" brings a pull request's commits to
mainin one push: the 3.0.0 merge was twenty-seven commits,scripts/setup-relay.ps1changed in an early one, and the summary said nothing.actions: read), with the last release tag behind it, and a line in the summary when neither can be read. The checkout fetches all of history so the comparison reaches however far back that is.Released as 3.0.1: the version in package.json, its lock and the guide, and the changelog section with its link. The guide's What is new card is titled by the release line, 3.0, so it does not credit 3.0's features to this fix.
Merging
Rebase and merge.