Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/continuous_release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ on:
workflow_run:
workflows: [CI]
types: [completed]
branches: [master]
workflow_dispatch:
inputs:
release_impact:
Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,5 @@ Before finalizing, always run the full pipeline: `Invoke-Build -Task Lint, Build
- `.github/workflows/ci.yml` is the required quality gate for runtime/code changes.
- `.github/workflows/module_ci.yml` owns the reusable module build, platform-test, optional smoke-test, and release-candidate pipeline.
- Keep downstream `ci.yml` files limited to triggers, permissions, immutable workflow inputs, and the caller-side `CI Result` compatibility job.
- Continuous release callers listen only for completed `CI` runs on `master`; pull-request CI must not start release orchestration.
- CI path filters may skip pull request validation for documentation and metadata-only changes. CI always runs for `master` pushes so every merged release-labelled change reaches release planning.
9 changes: 9 additions & 0 deletions Tests/WorkflowTriggers.Tests.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#requires -modules @{ ModuleName = "Pester"; ModuleVersion = "5.9.0"; MaximumVersion = "5.9.999" }

Describe 'GitHub Actions workflow triggers' -Tag 'Lint', 'Unit' {
It 'starts continuous release only for completed CI runs on master' {
$workflow = Get-Content "$PSScriptRoot/../.github/workflows/continuous_release.yml" -Raw

$workflow | Should -Match '(?ms)workflow_run:.*?workflows:\s*\[CI\].*?types:\s*\[completed\].*?branches:\s*\[master\]'
}
}
3 changes: 2 additions & 1 deletion docs/BlueprintHelpers.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ Task SetVersion {

Release automation should fold pending changelog entries and custom fragments into the next version section, then delete the consumed fragments.
Use the `prepare-release-changelog` composite action instead of exporting another module helper for GitHub-only release mechanics.
In the continuous release workflow, commit the resulting `CHANGELOG.md` update and `.changelog` deletions directly to `master` after a release-labelled PR merges.
In the continuous release workflow, commit the resulting `CHANGELOG.md` update and `.changelog` deletions directly to `master` after a release-labelled PR merges.
Automatic continuous release runs should listen only for completed `CI` workflows on `master`; keep manual dispatch available for unreleased changes already on `master`.
Commit the source module manifest version in the release metadata commit. Stamp release notes only into the final artifact in secretless candidate CI, then package and validate it before upload; the source manifest keeps release notes empty and the publisher does not rebuild.
For manual release preparation, commit source version and changelog before tagging the release.

Expand Down
1 change: 1 addition & 0 deletions docs/ReleaseBlueprint.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,7 @@ on:
workflow_run:
workflows: [CI]
types: [completed]
branches: [master]
workflow_dispatch:
inputs:
release_impact:
Expand Down