Skip to content

[Misc] Update actions/checkout to v7 and let Renovate update the workflow template - #104

Merged
vmassol merged 1 commit into
masterfrom
checkout-v7-renovate-template
Aug 27, 2026
Merged

[Misc] Update actions/checkout to v7 and let Renovate update the workflow template#104
vmassol merged 1 commit into
masterfrom
checkout-v7-renovate-template

Conversation

@vmassol

@vmassol vmassol commented Aug 27, 2026

Copy link
Copy Markdown
Member

Supersedes #86.

#86 (Renovate) bumped actions/checkout to v7 in .github/workflows/docker-build.yml, but that file is generated from template-github/docker-build.yml, which still pinned v4. Merging it would have made Gradlew Check fail on master (it regenerates the file and diffs), and the next ./gradlew run would have silently reverted the bump. Its green checks were misleading: the pull_request trigger for Gradlew Check was only added in 187b5c3, after #86's head was pushed, so that check never ran there.

Changes

  • Bump actions/checkout to v7 in template-github/docker-build.yml and in .github/workflows/gradlew-check.yml (the latter is not generated), and regenerate .github/workflows/docker-build.yml with ./gradlew.
  • Teach Renovate about the template tree, so this class of unmergeable Pull Request doesn't recur:
    • a custom manager reading uses: lines from template-github/**.yml;
    • a package rule disabling updates to the generated .github/workflows/docker-build.yml.

Notes on the Renovate config

  • A regex custom manager rather than extending the native github-actions manager's file patterns, because the template is not valid YAML before token expansion — $pathFilters sits at column 0 under paths: — so the YAML-parsing native manager would silently extract nothing.
  • datasourceTemplate: github-tags + versioningTemplate: docker mirrors the native manager, keeping the repo's major-only pins (v4 -> v7, not v7.0.1).
  • packageRules + matchFileNames rather than top-level ignorePaths, which would have replaced config:base's default ignore list instead of adding to it.

Verification

  • ./gradlew is idempotent on the result — a second run produces no diff, so Gradlew Check passes.
  • renovate-config-validator passes with renovate@44, the version running on this repo (per Update actions/checkout action to v7 #86's debug blob). Worth knowing for future config edits: a plain npx renovate may resolve an older 37.x, which rejects managerFilePatterns (renamed from fileMatch in v41).
  • The matchStrings regex was checked to extract actions/checkout from the template, and the file pattern to not match the generated path. A full renovate --platform=local extraction was not run — renovate@44 requires Node 24.
  • No line exceeds 120 characters.

Left alone as out of scope: renovate-config-validator also flags extends: config:base as deprecated in favour of config:recommended. It's pre-existing and Renovate auto-migrates it.

🤖 Generated with Claude Code

…flow template

* Bump actions/checkout to v7 in template-github/docker-build.yml and in
  .github/workflows/gradlew-check.yml, and regenerate
  .github/workflows/docker-build.yml.
* Add a Renovate custom manager reading the action versions from
  template-github/, and a package rule disabling updates to the generated
  .github/workflows/docker-build.yml, so that action bumps land on the template
  instead of on the file the Gradlew Check action regenerates. A custom manager
  is needed because the template is not valid YAML before its tokens are
  expanded, so the native github-actions manager cannot parse it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vmassol vmassol mentioned this pull request Aug 27, 2026
1 task
@vmassol
vmassol merged commit 3f19d86 into master Aug 27, 2026
15 checks passed
@vmassol
vmassol deleted the checkout-v7-renovate-template branch August 27, 2026 18:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant