Repository navigation
ci: add Dependabot, and make the base image something it can actually see - #36
Merged
Merged
Conversation
… see The plugin parent, the plugin BOM and the pinned Actions all move every few weeks and nothing here bumped any of them. Adds .github/dependabot.yml with maven, github-actions and docker, the BOM grouped into one PR rather than one per managed plugin. The e2e base image needed more than pinning. The issue asked for an explicit tag in place of lts-jdk21, but #30 had put the image behind an ARG so the compatibility workflow could override it with --build-arg, and Dependabot's Dockerfile parser matches a literal image:tag on the FROM line: FROM_LINE = %r{^#{FROM}\s+(#{PLATFORM}\s+)?(#{REGISTRY}/)?#{IMAGE}#{TAG}?...} There is no handling for ${VARIABLE}. Pinning the ARG default would have added a docker ecosystem that silently produced nothing -- configuration that reads as covered while doing no work. So the FROM is literal now, at 2.568.3-jdk21, and the weekly job rewrites that line instead of passing a build-arg. Simply making it literal would have turned the existing --build-arg into a no-op, and that job would have quietly retested LTS while still reporting itself as the weekly leg, so the rewrite is checked before the build: grep -qx 'FROM jenkins/jenkins:latest-jdk21' ... || exit 1 The compatibility workflow runs on pull requests touching .github/e2e, so this PR exercises that path rather than assuming it. Version updates stay off until someone with admin enables them: Dependabot is disabled by default on forks, so the file alone changes nothing. Signed-off-by: kurok <22548029+kurok@users.noreply.github.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.
Closes #24 for the in-tree part. Three checklist items need repository settings I cannot change; they are listed at the bottom.
Adds
.github/dependabot.ymlwithmaven,github-actionsanddocker, the BOM grouped into one PR rather than one per managed plugin.The e2e base image needed more than pinning
The issue asked to replace the floating
lts-jdk21tag with an explicit one so Dependabot could bump it. But #30 had since put the image behind anARGso the compatibility workflow could override it, and Dependabot's Dockerfile parser only matches a literalimage:tagon the FROM line:No handling for
${VARIABLE}anywhere indocker/lib/dependabot/docker/file_parser.rb. Pinning the ARG default and adding adockerecosystem would have produced zero PRs, forever — configuration that reads as covered while doing nothing. That is the failure I was trying to avoid by checking, and it is why the diff is bigger than the issue implies.So the
FROMis literal now (jenkins/jenkins:2.568.3-jdk21, a tag I confirmed exists), and the weekly job rewrites that line rather than passing--build-arg.The second-order trap: just making it literal would silently turn the existing
--build-arginto a no-op, and the weekly job would have retested LTS while still reporting itself as the weekly leg — a green check for work it did not do. So the rewrite is verified before the build:The compatibility workflow triggers on pull requests touching
.github/e2e/**, so this PR exercises that path instead of me asserting it works.What this does not do on its own
Nothing, until someone with admin enables it. Dependabot version updates are off by default on forks, so committing the file changes nothing by itself. From the issue's checklist, still outstanding and needing Settings → Code security:
I created the
dependencieslabel the config references, since it did not exist.Two other things from the issue that are deliberately not done, both correctly so per the issue's own reasoning:
jenkins.versionstays manual (it is${jenkins.baseline}.2, and Dependabot cannot reason about that), and the Maven wrapper has no ecosystem and stays a hand bump.