fix: stop skipping GHCR publishes for docs-only pushes - #808
Merged
Conversation
Contributor
|
No code issues found. See task
Reviewed 6a6203b |
mrubens
force-pushed
the
claude/epic-poincare-fea5f1
branch
from
July 27, 2026 03:32
7a23293 to
0a86b77
Compare
The docs-only skip predates shipping apps/docs inside the app image (#754): the web server now reads setup-flow docs from ../docs at request time, so a docs-only change produces a genuinely different app image. The classifier also treated every *.md/*.mdx file as docs, even though some markdown (for example workflow SKILL.md sources) is runtime content. Skipping also left the pushed commit without an immutable <channel>-<sha> image tag. Consumers that derive those tags from git history (pnpm dev pins ghcr.io/roocodeinc/roomote-worker:develop-<sha> for hosted compute) then referenced a tag that does not exist, and Modal sandbox creation failed for every local task run until the next code push published a new tag. Always building restores the invariant that every develop/main commit has a published immutable tag and keeps shipped docs current, at the cost of a full image build for changelog-only pushes.
mrubens
force-pushed
the
claude/epic-poincare-fea5f1
branch
from
July 27, 2026 03:38
0a86b77 to
6a6203b
Compare
Contributor
Author
|
Good catch — confirmed: since #754 the app Dockerfile copies apps/docs into the image (the web server reads setup-flow docs from ../docs at request time), so retagging the previous app image under a docs-only commit would ship stale docs. Rather than restricting the retag, the PR now removes the docs-only skip entirely: the skip predates #754 and was already shipping stale docs by never publishing docs-only changes at all. Every develop/main push now builds and publishes. |
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.
Problem
The Publish GHCR Images workflow skipped all build jobs for docs-only develop/main pushes. That skip is wrong in two ways:
It ships stale content. Since Ship apps/docs in the app image so setup docs render #754 the app image copies
apps/docsinto the image — the web server reads setup-flow docs from../docsat request time — so a "docs-only" change produces a genuinely different app image. The skip predates that change. The classifier also treated every*.md/*.mdxin the repo as docs, even though some markdown (for example workflowSKILL.mdsources) is runtime content.It breaks immutable-tag consumers. A skipped push leaves the commit with no
<channel>-<sha8>image tag.pnpm devderivesghcr.io/roocodeinc/roomote-worker:develop-<first 8 chars of origin/develop>for hosted compute, so after a changelog-only push lands on develop (for exampleacab6738, where every build/publish job was skipped), Modal sandbox creation fails with an empty "Image build for im-... failed" error and every local task run fails to spawn until the next code push. Verified against the registry:develop-acab6738returns 404 whiledevelop-4a08f555and thedevelopalias return 200.Fix
Remove the docs-only skip entirely: delete the
Classify changed pathsstep and thedocs_onlygates ondeployment-acceptance,build, andcreate-github-release. Every develop/main push now builds and publishes, restoring the invariant that every branch commit has a published immutable tag and keeping shipped docs current.Alternatives considered and dropped:
pnpm dev(probe GHCR, walk back to the newest published tag): works, but adds machinery to every consumer and leaves the tag gap in place.Tradeoff: changelog-only and docs-only pushes now pay for a full image build. Those pushes are infrequent, and the previous behavior was silently shipping stale docs, so the skip was not a safe optimization to keep.
Validation
docs_onlyreferences remain in the workflow.