Repository navigation
fix(ci): pin OCI licenses label; make publish-free PR builds explicit - #29
Merged
Merged
Conversation
Found during post-merge verification of #28 — the merged image did NOT carry the F5 license fix. ## The bug The published image had `org.opencontainers.image.licenses = GPL-3.0` even though the Dockerfile says AGPL-3.0. `docker/metadata-action` infers the label from the GitHub repo's license and OVERRIDES the Dockerfile LABEL via its `labels:` input. Every other OCI label survived correctly; only `licenses` was replaced, because it is the one metadata-action derives automatically. So the F5 remediation from #28 was silently reverted in the artifact users actually pull, while the README and Dockerfile both claimed AGPL-3.0 — the exact mismatch finding F5 was about, reintroduced by the publishing path. Fix: declare it explicitly in the metadata-action `labels:` block, which wins over both the inference and the Dockerfile. ## Also: stop the build job going vacuously green on PRs Verified from run 36907154998 that on a `pull_request` event every publish step is skipped: ``` 5 skipped Log in to GHCR 6 success Build and push to GHCR <- push:false, published nothing 7 skipped Log in to Docker Hub 8 skipped Mirror tags to Docker Hub 9 skipped Verify Docker Hub manifest platforms ``` The job reports success having published nothing, so a green `build` badge on a PR is not evidence that registry publishing works. A "Report publishing scope" step now announces this in the run summary, so the signal is honest about what it did and did not do. Refs #28
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.
Why this exists
Found during post-merge verification of #28. The multi-arch publish worked perfectly — but the image did not carry the F5 license fix.
The bug
The published image has:
…even though
Dockerfile:11saysAGPL-3.0.docker/metadata-actioninfersorg.opencontainers.image.licensesfrom the GitHub repo's license and overrides the DockerfileLABELvia itslabels:input. I pulled the real config blob off GHCR to confirm: every other OCI label survived correctly (title,vendor,source,revision,description), and onlylicenseswas replaced — because it is the one metadata-action derives on its own.So the F5 remediation was silently reverted in the artifact users actually pull, while the Dockerfile and README both claimed AGPL-3.0. That is precisely the mismatch finding F5 was about, reintroduced by the publishing path rather than by the source.
Fix: declare it explicitly in the
labels:block, which wins over both the inference and the Dockerfile.The CI gap, now made honest
Verified from run
36907154998that on apull_requestevent every publish step is skipped:The job reports success having published nothing — so a green
buildbadge on a PR is not evidence that registry publishing works. (Step 6 is the trap:Build and pushwithpush: falsestill reports success.)A Report publishing scope step now states in the run summary which of the two is happening, so the signal is honest about itself.
Verification
licenseswas overridden36907154998had steps 5-9 allsuccess— the first run where publishing actually executedAGPL-3.0— can only be checked after merge, since that is when publishing happens. This PR is what fixes it; verification follows the merge.Note
This also means the image currently on
:latestadvertises the wrong license. Merging this is the fix; until then the metadata is inaccurate.