ci: do not republish the dokploy image for docs-only pushes to canary - DO NOT MERGE inside the rollout window - #211
Merged
Conversation
This workflow retags canary, latest and the package.json version on every push to canary, so a merge that changes only markdown moves all three tags to a new digest. That breaks the procedure that depends on those tags being stable: capturing the digest the live instance is running before a version roll, so there is something to roll back to. The pre-#209 image is already untagged for exactly this reason. Adds paths-ignore for docs/** to the push trigger. workflow_dispatch is untouched, so a deliberate rebuild remains available.
Member
Author
|
Merging with Run 34614918846: This diff changes a workflow trigger and nothing else: no source, no schema, no dependency. The test job cannot be affected by it, and waiting for green here would mean waiting on a fix that is ordered after this merge. |
AminDhouib
added a commit
that referenced
this pull request
Sep 11, 2026
…ming Three corrections after #211 and #212 landed on canary. The republish point in section 2.1 was overstated. Step 1 reads the rollback digest off the running service on the host, not off a tag, and a republish adds a GHCR version rather than rewriting the old manifest, so a merge to canary cannot invalidate it. Rewritten to say what actually follows: pin the digest you are rolling to, and keep the docker save, because each republish leaves the previous build untagged and that is what retention sweeps collect. Also records that the fork is in neither Dokploy CSV, so a merge to canary redeploys nothing. Section 3.1 and 3.2 now account for canary having moved twice since b0cadcd. Both follow-ups are runtime-neutral - a CI trigger and a file under __test__ - and either build is a valid rollout target. Section 3.2 now shows how to resolve the current head's digest, and keeps the b0cadcd digest for anyone who would rather roll the reviewed commit and nothing else. Section 5 G6 and section 7 step 0 record that the test regression is fixed: #212 (e92e4ad), run 34615190789, 214 files passed, 2314 passed / 1 skipped / 0 failed.
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.
Adds
paths-ignore: ["docs/**"]to thepushtrigger of.github/workflows/dokploy.yml. Twelve added lines, ten of them the commentexplaining why. No job, step, tag or registry changes.
Why
This workflow runs
docker buildx imagetools createfor three tags on everypush to
canary:There is no
pathsfilter, so a merge that changes only markdown moves allthree to a new digest.
That collides with the one operating procedure that needs those tags to hold
still: before rolling the instance onto a new version you capture the digest it
is currently running, so there is something to roll back to. Today that matters
more than usual, because all three tags already point at the
b0cadcdbuildand the pre-#209 image carries no tag at all - it is reachable only by digest,
and only until a retention sweep reaches it. Republishing on a docs merge would
do the same thing to the next rollback target.
workflow_dispatchis deliberately untouched, so a rebuild on demand is stillone click.
Scope
docs/**only. A push that touches source,package.json, the Dockerfile orany workflow still builds and republishes exactly as it does today.
README.mdand
CNAMEare outsidedocs/, so they still trigger a build; narrowing thatfurther is a separate judgement I have not made here.
.github/workflows/dokploy.ymlis markedmerge=oursin.gitattributes, sothis stays fork-owned across an upstream sync.
Verification
The file parses and the trigger is what it claims:
LF preserved (
git ls-files --eolreportsi/lf w/lf).Context: #210 and
docs/build-once-rollout-runbook.md§2.1, third trap.