Repository navigation
Conversation
`ruby/setup-ruby@v1` follows a branch in that repository, not a tag. Renovate can't resolve a branch to a commit, so it can neither pin `@v1` to a digest nor hold it back with the shared preset's minimumReleaseAge. Reference the v1.334.0 release tag (the first that supports Ruby 4.0.9) in every workflow template and in puppetsync's own CI, and drop the stale digest comment on the pr_tests templates. merge_gha_workflows preserves each repo's `uses:` values, so a template change alone wouldn't reach existing repos. Add a `refresh_identities` option (task, plan and session config) that makes the template's value win for the named identities, including inside `preserve_blocks`, while every other Renovate-managed value is preserved as usual. The 20261024-setup-ruby-release-tag session uses it for the pupmod pr_tests.yml and tag_deploy.yml workflows. Extend github>simp/renovate-config in puppetsync's renovate.json, as the downstream repos do, so the templates get the same release-age wait and action pinning as the workflows synced from them. Co-Authored-By: Claude Opus 5.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.
Summary
Move every workflow template from
ruby/setup-ruby@v1to thev1.334.0release tag, and add amerge_gha_workflowsoption so a sync session can roll that out to existing pupmod repos.Why
@v1has to goIn
ruby/setup-ruby,v1is a branch, not a tag. Renovate can't resolve a branch to a commit (github/tags.findCommitOfTag: Tag v1 not found for ruby/setup-ruby). So@v1can be neither pinned to a digest nor held back by the shared preset'sminimumReleaseAge(simp/renovate-config#9, #10). A release tag gives Renovate a version to pin, age and update. #9 groups setup-ruby updates with the Ruby patch updates onrenovate/patch-ruby, with setup-ruby waiting 2 days and Ruby 3. CI can then never get a Ruby version that setup-ruby doesn't know yet. v1.334.0 is the first release that supports Ruby 4.0.9, which the templates use.Changes
ruby/setup-ruby@v1→@v1.334.0inpupmod/_github/workflows/{pr_tests,pr_tests.simp-simp,tag_deploy}.yml, the threetag_deploy_rubygem*.ymltemplates, and puppetsync's ownci.yml. The stale# ruby/setup-ruby@ec106b…comment on thepr_teststemplates is dropped.merge_gha_workflows: newrefresh_identitiesoption. The merge preserves each repo'suses:values, so a template change alone never reaches existing repos.ruby/setup-ruby) take the template's value instead, including insidepreserve_blockssuch as a repo's ownjobs.acceptance.puppetsync.plans.sync.merge_github_workflows.refresh_identities.20261024-setup-ruby-release-tag:pr_tests.ymlandtag_deploy.ymlforpupmod/pupmod_skeletonrepos, withpreserve_blocks: [jobs.acceptance](as in the previous session) andrefresh_identities: [ruby/setup-ruby].enforcestrategy, so they pick up the new templates on their next apply session.renovate.json: extendgithub>simp/renovate-configas the downstream repos do. The templates then get the same release-age wait and action pinning as the workflows synced from them. Otherwise, new repos and theenforce-strategy gems would be laid down unpinned.Merge order
ruby.json, a tag-referenced setup-ruby gets its own immediate "Update ruby/setup-ruby action" PR for every setup-ruby release, in every repo. setup-ruby has released about once a week lately.renovate.jsonchange only adds pinning once Extend config:best-practices renovate-config#10 has merged.Testing
rspec: 260 examples, 0 failures. That includes 5 newmerge_gha_workflowsexamples:pr_tests.ymltemplate.puppet parser validate --taskson the plans,bolt plan show puppetsync, andlist_pipeline_stageswith the new config all pass.masterclones of pupmod-simp-cron, -pam and -ssh with this session's options, changes exactly the 10 setup-ruby lines per repo (8 inpr_tests.yml, acceptance job included, and 2 intag_deploy.yml) and nothing else.renovate --dry-run=lookup(44.145.1) on this branch:v1.335.0update on its own branch.renovate/patch-ruby, pending the 2-day wait. The other actions are pinned inrenovate/pin-dependencies.ignorePathsdon't hide anything here.🤖 Generated with Claude Code