Skip to content

ci(refactor-release): split build workflow by trigger - #12749

Draft
DariuszPorowski wants to merge 4 commits into
dp/git-cliff-changelog-bootstrapfrom
dp/split-build-workflows
Draft

ci(refactor-release): split build workflow by trigger#12749
DariuszPorowski wants to merge 4 commits into
dp/git-cliff-changelog-bootstrapfrom
dp/split-build-workflows

Conversation

@DariuszPorowski

@DariuszPorowski DariuszPorowski commented Aug 20, 2026

Copy link
Copy Markdown
Member

Summary

  • Split the monolithic build.yaml into trigger-scoped validation, main-branch, and tagged-release workflows.
  • Extract CLI, image, Helm, Bicep types, and GitHub Release jobs into reusable workflows so each implementation remains single-source.
  • Preserve the original trigger union, job DAG, conditions, permissions, artifact names, concurrency, and required Build Check status.
  • Update the release runbook and operational workflow comments to the new workflow paths.

This is PR 5 in GitHub stack #12738 and depends on #12743.

Reason for change

The release lifecycle migration needs ordinary validation, main edge publication, and tagged release publication to have separate workflow entry points before their implementations diverge in later phases. This PR is a mechanical split: release behavior and artifact production remain unchanged.

How to test

  • Run actionlint over the eight split workflow files.
  • Run ghalint against the changed workflows.
  • Run zizmor --pedantic against the changed workflows.
  • Run Prettier and Markdown lint checks.
  • Compare the parsed trigger union, caller job DAG, job conditions, permissions, and moved leaf jobs against build.yaml from the parent commit.
  • Exercise Build Summary with success and failure result combinations.

Local validation confirms the original triggers are preserved across build-validation.yaml, build-main.yaml, and build-release.yaml; all five moved leaf jobs match their original parsed definitions apart from the explicit reusable-workflow input boundary.

File change summary

File Summary of change
.github/workflows/build-validation.yaml Handles pull requests, merge queue, release-branch pushes, and the existing manual dispatch.
.github/workflows/build-main.yaml Handles pushes to main.
.github/workflows/build-release.yaml Handles v* tag pushes.
.github/workflows/__build-*.yaml Reusable CLI, image, Helm, and Bicep type publication jobs.
.github/workflows/__publish-release.yaml Reusable GitHub Release publication job.
.github/workflows/build.yaml Removed after all triggers and jobs moved.
.github/workflows/copilot-setup-steps.yml Updates the CI workflow references.
.github/workflows/update-resource-types.yaml Points Bicep republishing comments to build-main.yaml.
docs/contributing/contributing-releases/README.md Points tagged release instructions to build-release.yaml.

@DariuszPorowski
DariuszPorowski requested review from a team as code owners August 20, 2026 19:35
@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

OpenSSF Scorecard

PackageVersionScoreDetails
actions/actions/checkout 3d3c42e5aac5ba805825da76410c181273ba90b1 🟢 7
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1024 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Binary-Artifacts🟢 10no binaries found in the repo
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Packaging⚠️ -1packaging workflow not detected
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Pinned-Dependencies⚠️ 3dependency not pinned by hash detected -- score normalized to 3
Security-Policy🟢 9security policy file detected
SAST🟢 10SAST tool is run on all commits
Branch-Protection🟢 6branch protection is not maximal on development and all release branches
actions/actions/download-artifact 3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c 🟢 5.1
Details
CheckScoreReason
Maintained⚠️ 00 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0
Packaging⚠️ -1packaging workflow not detected
Code-Review🟢 10all changesets reviewed
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Binary-Artifacts🟢 10no binaries found in the repo
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies⚠️ 0dependency not pinned by hash detected -- score normalized to 0
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
SAST🟢 10SAST tool is run on all commits
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
actions/actions/setup-python 5fda3b95a4ea91299a34e894583c3862153e4b97 🟢 6.6
Details
CheckScoreReason
Code-Review🟢 10all changesets reviewed
Maintained🟢 1021 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 10
Binary-Artifacts🟢 10no binaries found in the repo
CII-Best-Practices⚠️ 0no effort to earn an OpenSSF best practices badge detected
Dangerous-Workflow🟢 10no dangerous workflow patterns detected
Packaging⚠️ -1packaging workflow not detected
Token-Permissions⚠️ 0detected GitHub workflow tokens with excessive permissions
Pinned-Dependencies🟢 7dependency not pinned by hash detected -- score normalized to 7
Fuzzing⚠️ 0project is not fuzzed
License🟢 10license file detected
Signed-Releases⚠️ -1no releases found
Security-Policy🟢 9security policy file detected
Branch-Protection⚠️ 0branch protection not enabled on development/release branches
SAST🟢 9SAST tool is not run on all commits -- score normalized to 9

Scanned Files

  • .github/workflows/__publish-release.yaml
  • .github/workflows/build.yaml

@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from 98ebd2c to 2ed9810 Compare August 20, 2026 19:38
Copilot AI lite review requested due to automatic review settings August 20, 2026 19:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Splits the previously monolithic build workflow into trigger-scoped entry points (build-validation, build-main, build-release) while extracting the shared build/publish jobs into reusable workflows, and updates contributor/release docs and workflow comments to reference the new workflow paths.

Changes:

  • Replaces build.yaml with trigger-specific workflows for validation, main-branch pushes, and tag releases.
  • Extracts CLI, images, Helm chart, Bicep types, and GitHub Release publishing into reusable workflows (__build-*.yaml, __publish-release.yaml).
  • Updates release runbook/docs and workflow comments that previously referenced build.yaml.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
.github/workflows/build.yaml Removes the monolithic build workflow after logic is relocated.
.github/workflows/build-validation.yaml Adds PR/merge-queue/release-branch/manual validation entry workflow that composes reusable jobs.
.github/workflows/build-main.yaml Adds main-branch entry workflow that composes reusable jobs.
.github/workflows/build-release.yaml Adds tag-release entry workflow that composes reusable jobs.
.github/workflows/__build-cli.yaml Reusable workflow for CLI build/publish matrix and artifact upload.
.github/workflows/__build-images.yaml Reusable workflow for image build/publish and metrics artifact upload.
.github/workflows/__build-helm-chart.yaml Reusable workflow for Helm lint/package/push.
.github/workflows/__build-bicep-types.yaml Reusable workflow for dispatching Bicep types publishing and monitoring the remote workflow.
.github/workflows/__publish-release.yaml Reusable workflow for creating GitHub Releases and attaching built artifacts + checksums.
.github/workflows/copilot-setup-steps.yml Updates CI workflow references in agent setup comments.
.github/workflows/update-resource-types.yaml Updates comments to reference build-main.yaml for Bicep republishing.
docs/contributing/contributing-releases/README.md Updates release runbook references from build.yaml to build-release.yaml.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread docs/contributing/contributing-releases/README.md Outdated
Comment thread .github/workflows/copilot-setup-steps.yml Outdated
@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown

Unit Tests

    2 files  ±0    461 suites  ±0   8m 34s ⏱️ +11s
6 531 tests ±0  6 529 ✅ ±0  2 💤 ±0  0 ❌ ±0 
7 807 runs  ±0  7 805 ✅ ±0  2 💤 ±0  0 ❌ ±0 

Results for commit ccb132d. ± Comparison against base commit ab6a705.

♻️ This comment has been updated with latest results.

@codecov

codecov Bot commented Aug 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 59.82%. Comparing base (ab6a705) to head (ccb132d).

Additional details and impacted files
@@                        Coverage Diff                        @@
##           dp/git-cliff-changelog-bootstrap   #12749   +/-   ##
=================================================================
  Coverage                             59.82%   59.82%           
=================================================================
  Files                                   779      779           
  Lines                                 46058    46058           
=================================================================
+ Hits                                  27554    27555    +1     
+ Misses                                18504    18503    -1     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown

Functional Tests - upgrade-noncloud

3 tests  ±0   3 ✅ ±0   3m 34s ⏱️ -17s
1 suites ±0   0 💤 ±0 
1 files   ±0   0 ❌ ±0 

Results for commit d7c436a. ± Comparison against base commit fdfea3e.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown

Functional Tests - statestore-noncloud

2 tests   2 ✅  3m 1s ⏱️
1 suites  0 💤
1 files    0 ❌

Results for commit 8742de3.

♻️ This comment has been updated with latest results.

@github-actions

github-actions Bot commented Aug 20, 2026

Copy link
Copy Markdown

Functional Tests - corerp-cloud

32 tests  ±0   29 ✅  - 2   23m 25s ⏱️ + 3m 46s
 2 suites ±0    1 💤 ±0 
 1 files   ±0    2 ❌ +2 

For more details on these failures, see this check.

Results for commit ccb132d. ± Comparison against base commit ab6a705.

♻️ This comment has been updated with latest results.

DariuszPorowski added a commit that referenced this pull request Aug 21, 2026
Addresses review feedback on #12749.

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from d7c436a to 023c35a Compare August 21, 2026 02:24
DariuszPorowski added a commit that referenced this pull request Aug 21, 2026
Addresses review feedback on #12749.

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from 023c35a to 8742de3 Compare August 21, 2026 02:50
DariuszPorowski added a commit that referenced this pull request Aug 21, 2026
Addresses review feedback on #12749.

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from 8742de3 to f0752e9 Compare August 21, 2026 03:31
DariuszPorowski added a commit that referenced this pull request Aug 21, 2026
Addresses review feedback on #12749.

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from f0752e9 to 4709277 Compare August 21, 2026 16:39
@DariuszPorowski DariuszPorowski self-assigned this Aug 21, 2026
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from 4709277 to f9812b3 Compare August 24, 2026 15:25
@DariuszPorowski DariuszPorowski linked an issue Aug 24, 2026 that may be closed by this pull request
@DariuszPorowski DariuszPorowski linked an issue Aug 25, 2026 that may be closed by this pull request
4 tasks
@DariuszPorowski
DariuszPorowski marked this pull request as draft August 28, 2026 16:00
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from f9812b3 to 1d38ac6 Compare August 28, 2026 16:36
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from 1d38ac6 to f217b3a Compare August 28, 2026 16:54
@DariuszPorowski DariuszPorowski changed the title ci: split build workflow by trigger ci(refactor-release): split build workflow by trigger Aug 28, 2026
Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
The split copied every job into all three workflows, so publish-release could never run in validation or main builds, the Helm chart and Bicep types jobs carried ref clauses their trigger cannot match, and the summary shell block was duplicated verbatim three times. Keep only the jobs each trigger can run, narrow the remaining conditions to that trigger, and move the summary into a tested script.

Restores the workflow_dispatch entry point that build.yaml offered for main and tag rebuilds. Build Check, the only required status check these workflows produce, is unchanged.

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
Addresses review feedback on #12749.

Signed-off-by: Dariusz Porowski <3431813+DariuszPorowski@users.noreply.github.com>
@DariuszPorowski
DariuszPorowski force-pushed the dp/split-build-workflows branch from f217b3a to ccb132d Compare September 3, 2026 16:22
@radius-functional-tests

radius-functional-tests Bot commented Sep 3, 2026

Copy link
Copy Markdown

Radius functional test overview

🔍 Go to test action run

Click here to see the test run details
Name Value
Repository radius-project/radius
Commit ref ccb132d
Unique ID func1ceeeb97cd
Image tag pr-func1ceeeb97cd
  • Dapr: 1.14.4
  • Azure KeyVault CSI driver: 1.4.2
  • Azure Workload identity webhook: 1.3.0
  • Bicep recipe location ghcr.io/radius-project/dev/test/testrecipes/test-bicep-recipes/<name>:pr-func1ceeeb97cd
  • Terraform recipe location http://tf-module-server.radius-test-tf-module-server.svc.cluster.local/<name>.zip (in cluster)
  • applications-rp test image location: ghcr.io/radius-project/dev/applications-rp:pr-func1ceeeb97cd
  • dynamic-rp test image location: ghcr.io/radius-project/dev/dynamic-rp:pr-func1ceeeb97cd
  • controller test image location: ghcr.io/radius-project/dev/controller:pr-func1ceeeb97cd
  • ucp test image location: ghcr.io/radius-project/dev/ucpd:pr-func1ceeeb97cd
  • deployment-engine test image location: ghcr.io/radius-project/deployment-engine:latest

Test Status

⌛ Building Radius and pushing container images for functional tests...
✅ Container images build succeeded
⌛ Publishing Bicep Recipes for functional tests...
✅ Recipe publishing succeeded
⌛ Starting ucp-cloud functional tests...
⌛ Starting corerp-cloud functional tests...
✅ ucp-cloud functional tests succeeded
❌ corerp-cloud functional test failed. Please check the logs for more details

@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown

Functional Tests - corerp-noncloud

190 tests  ±0   186 ✅ ±0   1h 9m 38s ⏱️ - 3m 16s
  3 suites ±0     2 💤 ±0 
  1 files   ±0     2 ❌ ±0 

For more details on these failures, see this check.

Results for commit ccb132d. ± Comparison against base commit ab6a705.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Split the build workflow by trigger Migrate release automation to GoReleaser

2 participants