ci: gate release on CI and Integration Tests passing#28
Merged
Conversation
Before this change, release.yml ran in parallel with ci.yml and integration.yml on every push to main. release-please created a release PR (and on merge, the tag + binary) regardless of whether the build or the containerd integration test was green. A broken commit could produce a release with a broken binary. Make ci.yml and integration.yml callable via workflow_call and remove their direct push-to-main triggers (PR triggers stay so PRs still see independent CI status). release.yml now invokes both as jobs and release-please needs them, so the binary-build job only runs when both have passed on the same commit. Net behavior: - PR opened against main: ci.yml + integration.yml run as before. - Push to main: release.yml runs ci -> integration -> release-please -> binary upload, in that order. If ci or integration fails, no release PR is created and no binary is uploaded.
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.
Why
Right now the three workflows fire in parallel on every push to main:
release-please does not wait for ci.yml or integration.yml. If a broken commit lands on main and triggers a release PR merge, the binary upload happens regardless of whether ci or integration is green. A broken commit could produce a broken release.
What
Make ci.yml and integration.yml callable via
workflow_calland drop their directpush: maintriggers (PR triggers stay so PRs still get independent CI status). release.yml then invokes both as jobs, and release-please / binary-upload depend on them vianeeds:.Net behavior
The CI / Integration runs that previously appeared as separate top-level workflow runs on main now show up as nested jobs under "Release" in the Actions UI. PR runs are unchanged.
Test plan