Skip to content

ci: deploy/Dockerfile auf pull requests bauen - #30

Merged
strausmann merged 1 commit into
mainfrom
ci/dockerfile-build-auf-prs
Aug 6, 2026
Merged

ci: deploy/Dockerfile auf pull requests bauen#30
strausmann merged 1 commit into
mainfrom
ci/dockerfile-build-auf-prs

Conversation

@strausmann

Copy link
Copy Markdown
Owner

Struktureller Nachzug zu #24. Behebt kein offenes Issue, sondern die Lücke, durch die #24 überhaupt bis in einen Release hätte durchrutschen können.

Problem

deploy/Dockerfile wurde bislang ausschließlich in release.yml (nächtlicher Cron) und publish-image.yml (manuell) gebaut. test.yml deckt nur Go ab — go build, go vet, go test -race, Coverage-Gate, Doc-Coverage. Eine Regression im Dockerfile fiel damit erst nach dem Merge auf.

Genau dieser Fall war #24: Der Renovate-Custom-Manager hebt INFISICAL_CLI_VERSION an, ohne INFISICAL_CLI_SHA256 mitzuziehen, und matchManagers: ["dockerfile"] steht auf automerge: true. Der PR wäre ungeprüft gemerged worden und hätte den nächsten Release-Build zerrissen. Die Ursache ist mit #28 weg — die Lücke, die das unbemerkt ließ, bleibt ohne diesen PR bestehen.

Änderung

Ein Job docker-build in test.yml, der dasselbe Dockerfile mit push: false baut. GHA-Cache (type=gha) hält die Laufzeit nach dem ersten Lauf klein. Keine Registry-Logins, keine Secrets — der Job braucht nichts davon, weil nichts gepusht wird.

⚠️ Nachgelagerter Schritt außerhalb dieses PRs

Der Job muss in die Required Status Checks der Branch-Protection von main eingetragen werden. Ohne das wartet GitHubs Auto-Merge — und damit Renovates platformAutomerge — nicht auf ihn, und der Job liefe zwar, könnte einen kaputten PR aber nicht aufhalten. Der Schutz wäre dann kosmetisch.

Das ist eine Repo-Einstellung und lässt sich nicht im Code mitliefern. Ich habe sie bewusst nicht selbst gesetzt.

Verifikation

  • test.yml parst als YAML, Jobs sind lint, test, docker-build
  • Der Job spiegelt bewusst die Build-Konfiguration aus release.yml (docker/setup-buildx-action@v4, docker/build-push-action@v7, file: deploy/Dockerfile), damit PR-Build und Release-Build nicht auseinanderlaufen
  • Der eigentliche Nachweis ist dieser PR selbst: docker-build muss in seinen eigenen Checks grün auftauchen

🤖 Generated with Claude Code

deploy/Dockerfile wurde bislang ausschliesslich im Release-Workflow und im
manuellen publish-image-Workflow gebaut. test.yml deckte nur Go ab. Eine
Regression im Dockerfile fiel damit erst im naechtlichen release.yml auf, also
nach dem Merge.

Genau dieser Fall war #24: der Renovate-Custom-Manager hob
INFISICAL_CLI_VERSION an, ohne INFISICAL_CLI_SHA256 mitzuziehen, und
matchManagers ["dockerfile"] steht auf automerge. Der PR waere ungeprueft
gemerged worden und haette den Release-Build zerrissen.

Neuer Job docker-build baut dasselbe Dockerfile mit push: false. GHA-Cache
haelt die Laufzeit nach dem ersten Lauf klein.

Damit Renovates platformAutomerge tatsaechlich darauf wartet, muss
"docker-build" noch in den Required Status Checks der Branch-Protection von
main eingetragen werden - sonst mergt GitHubs Auto-Merge am Job vorbei.
Copilot AI lite review requested due to automatic review settings August 6, 2026 09:32

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR closes a CI gap by ensuring deploy/Dockerfile is built on pull requests (and main pushes) as part of the existing test workflow, so Dockerfile regressions are detected before merge rather than only during release/publish workflows.

Changes:

  • Add a new docker-build job to .github/workflows/test.yml.
  • Build deploy/Dockerfile with docker/build-push-action using push: false and GHA cache (type=gha).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +80 to +83
# deploy/Dockerfile wurde bis dahin nur im Release gebaut — eine Regression darin fiel erst
# im naechtlichen release.yml auf, nach dem Merge (siehe #24). Dieser Job baut dasselbe
# Dockerfile ohne Push, damit sie vor dem Merge auffaellt. Damit Renovates automerge darauf
# wartet, muss "docker-build" in den Required Status Checks der main-Branch-Protection stehen.
@strausmann
strausmann merged commit 49753cf into main Aug 6, 2026
6 checks passed
@strausmann
strausmann deleted the ci/dockerfile-build-auf-prs branch August 6, 2026 10:08
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.

2 participants