ci: consolidate workflows into one CI pipeline with composite actions - #45
Merged
Conversation
Merge the four standalone workflows (test, lint, docker, e2e-kubevirt) into a single main.yml CI workflow modeled on stunmesh-go's pipeline, plus a tag-driven release.yml: - codegen/lint/test run first; the KubeVirt e2e job is gated on all three so the expensive KVM runner never starts on a broken change. - A stunmesh-style e2e-required gate (check name "E2E") wraps the e2e stage; the ruleset requires Codegen/Lint/Test/E2E as stable names. - The image publish job hangs off e2e-required and runs only on real pushes to main; v* tags are handled by release.yml, which creates a draft release up front, uploads dist/install.yaml and the packaged Helm chart, and pushes the semver-tagged image via the shared action. - A weekly scheduled run doubles as the guest-image early-warning canary, since the e2e suite tracks the latest nightly guest release. Each job's implementation moves into a composite action under .github/actions/ (codegen, lint, test, e2e-kubevirt, docker); the workflow itself only carries job topology, gates, and version pins. Also: bump actions/checkout, setup-go and cache to latest majors; add .github/dependabot.yml scanning GitHub Actions versions daily with a supply-chain cooldown; label the Manager scaffold suite (manager-e2e) and include its five specs in the e2e job's label filter. Refs #38 Signed-off-by: Date Huang <tjjh89017@hotmail.com>
tjjh89017
force-pushed
the
ci/consolidate-main-workflow
branch
from
August 18, 2026 06:40
8223d52 to
fe7ea79
Compare
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.
Merges the four standalone workflows (
test.yml,lint.yml,docker.yml,e2e-kubevirt.yml) into amain.ymlCI workflow plus a tag-drivenrelease.yml, modeled on stunmesh-go's pipeline, with each job's implementation split into composite actions under.github/actions/.CI (
main.yml)e2e-required(check nameE2E): stunmesh-style stable gate (if: always()+ result assertion). Ruleset requiresCodegen,Lint,Test,E2E.docker: gated behinde2e-required(transitively covers codegen/lint/test), runs only on real pushes tomain— never on PRs, the weekly schedule, or manual dispatch.Release (
release.yml)On a
v*tag:create-releaseopens a draft up front (barrier against duplicate drafts), thenrelease-manifestsuploadsdist/install.yaml(make build-installer) + the packaged Helm chart, anddockerpushes the semver-tagged image via the shared action.rc/RCtags are marked prerelease. Tag pushes moved out of CI so branches are CI's and tags are Release's.Composite actions
codegenmake manifests generate+ git diff checklinttestmake testvia envteste2e-kubevirtdockerAlso adds
.github/dependabot.yml: daily GitHub Actions version scan with a supply-chain cooldown window.actionlintpasses on both workflows.Follow-up (separate from this PR)
Once this lands, create the branch ruleset requiring
Codegen/Lint/Test/E2E— closing out the "promote to required check" step of #38.Refs #38