Quiet the registry login and confirm the push works #4

Merged
nexus merged 3 commits from ci/quiet-login into main 2026-07-23 10:41:47 +02:00
Owner

Two things, both about the registry push.

Quiet login. docker login prints a three-line warning about storing the
credential unencrypted on every single run. In a job container whose filesystem
is discarded afterwards that is noise. The output is now captured and only
printed when the login actually fails, so a bad token still fails the step
loudly.

The push itself. Run 19 on main failed with a bare Error response from daemon: — Podman does not relay the registry's reason. An instrumented run on
this branch, allowed to push its own commit tag, went through cleanly, so the
push works with the token as it stands now. The instrumentation is removed
again in the second commit.

The most likely explanation for run 19 is the token scope: docker login
succeeds against Forgejo with any valid token, and only the push needs
write:package. That cannot be confirmed after the fact from here, and merging
this settles it either way — main pushes all three tags.

One small fix carried over: without a git tag git describe falls back to the
commit, so the version tag and the commit tag were the same upload twice. It is
now skipped when they match.

Two things, both about the registry push. **Quiet login.** `docker login` prints a three-line warning about storing the credential unencrypted on every single run. In a job container whose filesystem is discarded afterwards that is noise. The output is now captured and only printed when the login actually fails, so a bad token still fails the step loudly. **The push itself.** Run 19 on main failed with a bare `Error response from daemon:` — Podman does not relay the registry's reason. An instrumented run on this branch, allowed to push its own commit tag, went through cleanly, so the push works with the token as it stands now. The instrumentation is removed again in the second commit. The most likely explanation for run 19 is the token scope: `docker login` succeeds against Forgejo with any valid token, and only the push needs `write:package`. That cannot be confirmed after the fact from here, and merging this settles it either way — main pushes all three tags. One small fix carried over: without a git tag `git describe` falls back to the commit, so the version tag and the commit tag were the same upload twice. It is now skipped when they match.
docker login prints a three-line warning about storing the credential
unencrypted on every run. In an ephemeral job container whose filesystem is
discarded that is noise, but suppressing it must not hide a real failure: the
output is captured and only printed when the login actually fails.
TEMPORARY: instrument the image push
All checks were successful
CI / test (push) Successful in 2m40s
CI / image (push) Successful in 58s
392192240e
The daemon rejects the push with an empty message, which hides whether the
registry refused it or the socket proxy never forwarded the request. Adds a
probe of the proxy's endpoints, pushes one tag at a time with the client's
debug output, and lets a ci/* branch push its own commit tag so this can be
narrowed down without touching main.

To be reverted once the cause is known.
Remove the push diagnostics again
All checks were successful
CI / test (pull_request) Successful in 2m55s
CI / test (push) Successful in 3m20s
CI / image (pull_request) Successful in 56s
CI / image (push) Successful in 53s
7399c5781a
The instrumented run proved the push works with the current token, so the proxy
probe, the debug flag and the ci/* push gate are gone. Kept one improvement:
the version tag is only pushed when it differs from the commit tag, which it
does not while the repository has no git tags.
nexus merged commit 88b4a267b2 into main 2026-07-23 10:41:47 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
nexus/WifiPoolToMQTT!4
No description provided.