Add optional files scoping to the merge_github_workflows stage - #79
Merged
Conversation
A session config can now limit the workflow merge to specific files (puppetsync.plans.sync.merge_github_workflows.files), enabling targeted template rollouts. Motivation: the first live smoke of the merge stage showed the deployed fleet's pr_tests.yml is AHEAD of the template (REFERENCE.md freshness job, Ruby Style job, acceptance matrix — see simp#41/simp#46), so an unscoped template-canonical refresh would revert deployed improvements until the template is reconciled. Scoping lets single-file rollouts (like the release_rpms.yml ghcr change, PR simp#48) proceed safely in the meantime. Adds BoltSpec coverage for the stage itself (previously untested at the plan level): default merges every templated workflow and skips untemplated ones; the files list scopes it. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
michael-riddle
approved these changes
Aug 10, 2026
silug
added a commit
to silug/simp-puppetsync
that referenced
this pull request
Aug 10, 2026
First dynamic-inventory session (repolist=github-org via the latest symlink): rolls out PR simp#48's release_rpms.yml build-container change fleet-wide, scoped to that single file via merge_github_workflows.files — the pr_tests.yml template is currently behind the deployed fleet (simp#41/simp#46), so unscoped workflow syncs stay off until the template is reconciled. Stage plan (verified via list_pipeline_stages): install_gems, checkout, merge_github_workflows (scoped), git_commit_changes, then the GitHub fork/remote/push/PR stages. Approve/merge plans configured; run them with repolist=generated-20260731-release-rpms-ghcr. Smoke-tested end-to-end against pupmod-simp-aide and pupmod-simp-acpid (see simp#79): one-file commits matching PR simp#48's diff exactly, Renovate values preserved, second run fully unchanged. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
silug
added a commit
that referenced
this pull request
Aug 11, 2026
…eet-wide RPM build failures) (#80) * Add session config: fleet rollout of release_rpms.yml ghcr change First dynamic-inventory session (repolist=github-org via the latest symlink): rolls out PR #48's release_rpms.yml build-container change fleet-wide, scoped to that single file via merge_github_workflows.files — the pr_tests.yml template is currently behind the deployed fleet (#41/#46), so unscoped workflow syncs stay off until the template is reconciled. Stage plan (verified via list_pipeline_stages): install_gems, checkout, merge_github_workflows (scoped), git_commit_changes, then the GitHub fork/remote/push/PR stages. Approve/merge plans configured; run them with repolist=generated-20260731-release-rpms-ghcr. Smoke-tested end-to-end against pupmod-simp-aide and pupmod-simp-acpid (see #79): one-file commits matching PR #48's diff exactly, Renovate values preserved, second run fully unchanged. * Pull RPM build containers from ghcr.io/simp/simp-<os>-build The docker.io/simpproject/simp_build_<os> images this template referenced have no EL8/9/10 variants -- the newest are simp_build_centos7 (pushed 2024-08-09) and simp_build_centos8 (2023-06-26). Builds against those die with 'NameError: uninitialized constant JSON::Fragment' (json >= 2.9 required). Point at ghcr.io/simp/simp-el{8,9,10}-build, which are public and rebuilt weekly, and add a build_container_tag input so a dated tag can be pinned. Matches the proven configuration already deployed in pupmod-simp-mockup. --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
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.
Enables targeted workflow-template rollouts: a session config can scope the merge stage to specific files —
Why now — the first live smoke found the template is behind the fleet
Running the merge stage against real repos (pupmod-simp-aide, pupmod-simp-acpid) showed the deployed
pr_tests.ymlcontains jobs the baseline template lacks: the REFERENCE.md freshness job (#46), a Ruby Style job (#41's known divergence), an acceptance matrix, andparallel_spec/Ruby 3.4 updates. Template-canonical semantics would revert all of that fleet-wide — correct machinery, stale template. Until the template is reconciled (#41/#46), unscoped workflow syncs are unsafe; scoped ones (like therelease_rpms.ymlghcr rollout for PR #48) are fine.Verified live with a dynamic-inventory session scoped to
release_rpms.ymlagainst those two repos: each commit touched exactly one file (+6/−2, precisely PR #48's diff), Renovate-managed values everywhere untouched, and a second run reported0 ok / 2 unchanged / 0 failed.Also adds the first BoltSpec coverage for the
merge_github_workflowsstage itself: default behavior merges every templated workflow and skips untemplated (repo-specific) ones; thefileslist scopes it. 15 plan examples, 0 failures; plain suite 193 green.🤖 Generated with Claude Code