build(release)!: retire legacy paths and consume snapshots - #12956
build(release)!: retire legacy paths and consume snapshots#12956DariuszPorowski wants to merge 1 commit into
Conversation
Dependency Review✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.Scanned Files
|
There was a problem hiding this comment.
🔵 Needs a closer look
Functional tests can reference an unpublished Magpie image, stale main runs can still publish edge Bicep types, and live publication remains unverified.
Pull request overview
Final cleanup for #12816, consolidating CI and edge publication around canonical GoReleaser snapshots while retiring legacy release paths.
Changes:
- Reuses snapshot outputs for CLI/container artifacts and edge publication.
- Moves test images to immutable, run-specific tags.
- Simplifies release tooling, workflows, documentation, and skills.
File summaries
| File | Description |
|---|---|
.github/release-parity/targets.json |
Removes test images from release outputs. |
.github/scripts/get_release_version.py |
Deletes legacy Python metadata parser. |
.github/scripts/goreleaser-snapshot-artifacts.sh |
Exports and publishes snapshot images. |
.github/scripts/goreleaser-snapshot-artifacts_test.sh |
Tests snapshot image handling. |
.github/scripts/release-cutover_test.sh |
Validates final cutover contracts. |
.github/scripts/release-get-version.sh |
Deletes obsolete release selector. |
.github/scripts/release-get-version_test.sh |
Deletes selector tests. |
.github/scripts/release-oci-artifacts.sh |
Excludes test images from release aliases. |
.github/scripts/release-parity-manifest_test.sh |
Preserves historical baseline validation. |
.github/scripts/release-sboms_test.sh |
Targets the reusable snapshot workflow. |
.github/scripts/release-version-format_test.sh |
Tests consolidated metadata generation. |
.github/scripts/release-version.sh |
Generates workflow release metadata. |
.github/skills/radius-build-images/SKILL.md |
Documents snapshot-based image builds. |
.github/skills/radius-install-custom/SKILL.md |
Updates multi-architecture troubleshooting. |
.github/workflows/__build-bicep-types.yaml |
Uses the shared metadata helper. |
.github/workflows/__build-cli.yaml |
Exports snapshot CLI binaries and publishes edge. |
.github/workflows/__build-helm-chart.yaml |
Uses the shared metadata helper. |
.github/workflows/__build-images.yaml |
Exports snapshot images and publishes edge. |
.github/workflows/__build-snapshot.yaml |
Adds the canonical snapshot workflow. |
.github/workflows/__changes.yml |
Removes the retired workflow path. |
.github/workflows/build-main.yaml |
Integrates snapshot consumers and stale-write gating. |
.github/workflows/build-release.yaml |
Retains only Bicep outside GoReleaser. |
.github/workflows/build-validation.yaml |
Validates snapshot-derived artifacts. |
.github/workflows/functional-test-cloud.yaml |
Uses attempt-specific test image tags. |
.github/workflows/functional-test-noncloud.yaml |
Uses attempt-specific test artifacts. |
.github/workflows/goreleaser-snapshot.yaml |
Deletes the duplicate snapshot workflow. |
.github/workflows/publish-docs.yaml |
Removes Python metadata setup. |
.github/workflows/release-verification.yaml |
Deletes standalone verification. |
build/artifacts.mk |
Adds snapshot save and edge targets. |
build/docker.mk |
Removes legacy multi-architecture generators. |
build/test.mk |
Registers snapshot artifact tests. |
build/version.mk |
Makes GIT_VERSION overridable. |
docs/contributing/contributing-code/contributing-code-building/README.md |
Documents replacement build commands. |
docs/contributing/contributing-releases/README.md |
Condenses the release runbook. |
test/functional-portable/cli/noncloud/testdata/corerp-kubernetes-cli-parameters.bicep |
Requires an explicit Magpie tag. |
test/functional-portable/corerp/cloud/resources/aci_test.go |
Supplies the Magpie image parameter. |
test/functional-portable/corerp/cloud/resources/testdata/corerp-aci.bicep |
Accepts an immutable Magpie image. |
test/testutil/testutil.go |
Changes the default test image tag. |
test/testutil/testutil_test.go |
Tests image reference generation. |
Review details
- Files reviewed: 39/39 changed files
- Comments generated: 2
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
|
|
||
| build-and-push-helm-chart: | ||
| if: github.repository == 'radius-project/radius' && github.ref == 'refs/heads/main' && needs.changes.outputs.only_changed != 'true' | ||
| if: github.repository == 'radius-project/radius' && github.ref == 'refs/heads/main' && needs.changes.outputs.only_changed != 'true' && needs.build-and-push-images.outputs.edge-current == 'true' |
| } | ||
| if imageTag == "" { | ||
| imageTag = "latest" | ||
| imageTag = "test-local" |
2c1c827 to
d23954f
Compare
Unit Tests 2 files 460 suites 8m 28s ⏱️ Results for commit 6bf4bf8. ♻️ This comment has been updated with latest results. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## dp/helm-immutable-image-tags #12956 +/- ##
================================================================
- Coverage 59.83% 59.82% -0.01%
================================================================
Files 778 778
Lines 45916 45916
================================================================
- Hits 27474 27471 -3
- Misses 18442 18445 +3 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Functional Tests - upgrade-noncloud1 tests 0 ✅ 5m 5s ⏱️ For more details on these failures, see this check. Results for commit 6bf4bf8. ♻️ This comment has been updated with latest results. |
d23954f to
3cfb9ab
Compare
03154ae to
8ff4430
Compare
1e89973 to
55ccbe3
Compare
02a19d0 to
6a60879
Compare
6a60879 to
0eb8fe1
Compare
0eb8fe1 to
3872b68
Compare
Functional Tests - corerp-cloud32 tests 31 ✅ 18m 53s ⏱️ Results for commit dcab14c. ♻️ This comment has been updated with latest results. |
dcab14c to
e61efaf
Compare
Use one canonical snapshot for PR artifacts and main edge publication. Keep production release gates intact, retain Bicep and developer builds, and move test images to attempt-scoped functional workflow tags. BREAKING CHANGE: The legacy multi-architecture Make targets and release selectors are removed. Use GoReleaser snapshot and edge targets for core images and docker-publish-bicep for Bicep. Test images no longer receive release-channel aliases; use explicit test-run tags. Refs: #12816 Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
e61efaf to
6bf4bf8
Compare
❌ Spellcheck FailedThere are spelling errors in your PR. Visit the workflow output to see what words are failing. Adding new wordsYou can add new custom words to .cspellignore. |
Radius functional test overviewClick here to see the test run details
Test Status⌛ Building Radius and pushing container images for functional tests... |
Summary
PR 18 of native stack #12738, based on #12953. Keep this and all preceding PRs draft.
Breaking change: Replace removed multi-architecture Make targets with the core snapshot/edge targets and
docker-publish-bicep. Test images no longer receive release-channel aliases; select explicit test-run tags.Reason for change
Fixes #12816
Implements the final-consumer cleanup in the release lifecycle implementation plan and design. Official release manifest, installation, provenance, digest-lock, approval, and coordination gates remain intact.
How to test
Verified locally:
make goreleaser-check goreleaser-snapshot GORELEASER_ARGS=--skip=docker: actual 22-binary snapshot, seven raw CLI outputs, checksums, and SPDX SBOMs passed the parity verifier.make test-release-version-format test-release-cutover test-release-sboms test-release-oci-artifacts test-release-publication: passed, including snapshot image command fixtures, 16 native OCI cases, publication/coordination cases, and six staged-installation fixtures.make test-release-parity-manifest test-capture-release-image-digests test-prepare-release test-release-plan test-release-controller test-build-summary: passed, including strict historical baseline validation and controller resume.go test ./test/testutil ./test/functional-portable/corerp/cloud/resources -run '^(TestTestImageReferences|Test_ACI)$' -count=1: passed; ACI remains intentionally skipped, so this compiles its caller without provisioning resources.concurrency.queuekey; full workflow validation was run without its embedded ShellCheck subprocess, and changed shell files were checked separately.Draft rollout gates: Docker is not installed in local WSL, so live Docker export/registry manifest publication, full functional runs, and a real release cycle remain unverified. Run those in CI/a release environment before rollout. The signed Deployment Engine prerequisite, dashboard source-provenance companion change, and package access prerequisites remain required.
cspellwas unavailable. Zizmor reported four high-severity findings in unchanged cloud-test trigger/environment handling and informational self-repository suggestions; no high-severity findings were in the new snapshot path. This PR does not waive those risks or any publication gate.File change summary
.github/workflows/__build-snapshot.yaml,__build-cli.yaml,__build-images.yaml,build-main.yaml,build-validation.yaml.github/scripts/goreleaser-snapshot-artifacts.sh,_test.sh;build/artifacts.mk.github/release-parity/targets.json;.github/scripts/release-oci-artifacts.sh,release-parity-manifest_test.sh;.github/workflows/build-release.yaml.github/scripts/release-version.sh,release-version-format_test.sh; reusable Bicep/Helm and docs workflows;build/version.mk.github/scripts/release-cutover_test.sh,release-sboms_test.sh;build/test.mk;.github/workflows/__changes.ymlbuild/docker.mktest/testutil/testutil.go,testutil_test.go; ACI test and Bicep fixture; CLI parameter fixtureradius-build-imagesandradius-install-customskills