Skip to content

Add dry_run mode to release workflow#7809

Merged
eddyashton merged 3 commits intomicrosoft:mainfrom
eddyashton:add_dry_run_release
Apr 9, 2026
Merged

Add dry_run mode to release workflow#7809
eddyashton merged 3 commits intomicrosoft:mainfrom
eddyashton:add_dry_run_release

Conversation

@eddyashton
Copy link
Copy Markdown
Member

The release workflow does several jobs (creating an RPM, testing we can build against the RPM, testing we can reproduce the SBOM), that currently have no coverage until we actually cut a release. This isn't ideal, meaning some errors can only be caught late. Although there's a workflow dispatch, it's designed for retrying a flaky release, and expects to be run on a real release tag (and creates a real release). I think we want a dry-run option, so we can manually derisk/smoke-test some of these steps without creating artificial GH releases.

@eddyashton eddyashton requested a review from a team as a code owner April 8, 2026 10:49
Copilot AI review requested due to automatic review settings April 8, 2026 10:49
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a dry_run option to the GitHub Actions release workflow so the release pipeline can be exercised via manual dispatch without publishing a GitHub Release.

Changes:

  • Introduces workflow_dispatch boolean input dry_run (default true).
  • Skips release_notes and create_release jobs when dry_run is enabled.
  • Adjusts job dependencies so build_release no longer waits on release_notes.

@eddyashton eddyashton enabled auto-merge (squash) April 9, 2026 10:19
@eddyashton eddyashton disabled auto-merge April 9, 2026 10:33
@eddyashton eddyashton merged commit 0bdfe53 into microsoft:main Apr 9, 2026
19 checks passed
@eddyashton
Copy link
Copy Markdown
Member Author

For posterity.

How is this evaluated when the trigger is a push, not a workflow_dispatch, so inputs.dry_run doesn't exist?

When triggered by push, inputs.dry_run is undefined, which evaluates to '' (empty string) in GitHub Actions expressions. An empty string is falsy, so !inputs.dry_run evaluates to true.
This means both the release_notes and create_release jobs will run on a tag push — which is the intended behavior, since a tag push should produce a real release, not a dry run.

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.

3 participants