Skip to content

ci: release the runner with dist's defaults - #625

Merged
adriencaccia merged 3 commits into
mainfrom
cod-4268-release-the-runner-with-dists-defaults-now-that-it
Nov 13, 2026
Merged

adriencaccia merged 3 commits into
mainfrom
cod-4268-release-the-runner-with-dists-defaults-now-that-it

Conversation

@adriencaccia

Copy link
Copy Markdown
Member

memtrack and exec-harness now ship inside the runner, so dist only releases codspeed-runner and no longer needs a custom draft job and hand edits to keep subtool releases from becoming "latest". dist creates the release itself, cache-builds = false replaces the hand-removed rust-cache step, and without allow-dirty a PR whose release.yml differs from what dist generate produces fails dist's plan (checked locally: a bumped pin makes dist plan exit with "run 'dist init' to update the file").

Case Before Now
Stable release vX.Y.Z A custom job drafts it, a hand edit undrafts it, post-announce marks it latest dist creates it as latest
Alpha vX.Y.Z-alpha.N Published as a regular release, not latest Published as a pre-release
PR release build Installer and checksums skipped Built
release.yml differs from the config Accepted dist plan fails the PR
Action pin bump in release.yml Dependabot PR Bump [dist.github-action-commits], then dist generate
Regenerating release.yml dist generate, then redo 2 hand edits dist generate

Closes COD-4268

adriencaccia and others added 3 commits November 13, 2026 12:41
`pr-run-mode = "upload"` turns on dist's `cache-builds`, which adds a
`swatinem/rust-cache` step to every build job of the generated release.yml.
That step was removed by hand after each `dist generate`; `cache-builds = false`
keeps it out of the generated file.

Refs COD-4268
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A custom job created the release as a draft and a hand edit to release.yml
undrafted it, so that only runner releases became "latest" while memtrack
and exec-harness were released on their own tags. Both now ship inside the
runner and dist no longer releases them, so dist's own `gh release create`,
which makes a stable release latest and never a prerelease, does what we
need with the same title and notes.

Drop the draft job, the hand edit, and post-announce's latest step and
non-runner branch. The installer and checksums job no longer waits on the
draft job, which was skipped on PRs, so PRs now build it too.

The hand edit also dropped dist's `--prerelease` flag, so alphas were
published as regular releases; they are now GitHub pre-releases.

Refs COD-4268
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
release.yml no longer carries hand edits, so drop `allow-dirty`: dist's plan,
which runs on every PR, now fails when the file differs from what
`dist generate` produces from dist-workspace.toml.

Dependabot bumped the action pins in release.yml, which would now fail that
check. Exclude the file from dependabot; its pins are bumped in
`[dist.github-action-commits]` before regenerating.

Refs COD-4268
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@codspeed

codspeed Bot commented Nov 13, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

2 warnings

⚠️ Walltime results may be unreliable

Some benchmarks used the Walltime instrument outside CodSpeed Macro Runners, which can make the results inconsistent.

Learn more about Macro Runners

See affected benchmarks

⚠️ 8 benchmarks are dominated by system calls

System calls cannot be simulated consistently and are left out of the measure. The reported value understates the real cost. Switch to the Walltime instrument to measure them.

Learn more about system calls

See affected benchmarks

✅ 53 untouched benchmarks
⏩ 6 skipped benchmarks1


Comparing cod-4268-release-the-runner-with-dists-defaults-now-that-it (eb9d9f9) with main (25c26e7)

Open in CodSpeed

Footnotes

  1. 6 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

@adriencaccia
adriencaccia marked this pull request as ready for review November 13, 2026 21:05
@greptile-apps

greptile-apps Bot commented Nov 13, 2026 •

Copy link
Copy Markdown

RetriggerView in GreptileConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable issues were found.

Summary

Lets cargo-dist create runner releases without a custom draft job or hand-edited workflow steps.

  • Runner tags now create releases directly from the built artifacts.
  • The generated release workflow now follows the dist config.

Diagram

%%{init: {'theme': 'neutral'}}%%
flowchart TD
  A[PR or version tag] --> B[Plan]
  B --> C[Build platform artifacts]
  C --> D[Build installers and checksums]
  D --> E{Version tag?}
  E -->|No| F[Keep workflow artifacts]
  E -->|Yes| G[Create GitHub release]
  G --> H[Publish executable hashes and refresh allowlist]
  H --> I{Stable release?}
  I -->|Yes| J[Trigger action version bump]
Loading

Reviews (1) · Last reviewed commit: "ci: fail PRs whose release.yml differs f..." · Reviewed by Greptile

@adriencaccia
adriencaccia merged commit 9589414 into main Nov 13, 2026
68 checks passed
@adriencaccia
adriencaccia deleted the cod-4268-release-the-runner-with-dists-defaults-now-that-it branch November 13, 2026 23:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant