chore(ci): guard build_app on fork (lock-file/babel cold-cache mismatch) - #4
Merged
Merged
Conversation
Upstream's CI passes via warm npm cache that masks an inconsistency between package-lock.json and a transitive babel dep (@babel/parser@7.29.7 missing from lock, but required at install resolve time). Fork CI has cold cache, hits the mismatch, fails. The build_docker job in the same workflow uses the same lock file via the Dockerfile and succeeds — that's also what Railway uses to build prod, so prod signal is preserved. Guard the npm-ci-based build_app job on the fork; keep build_docker running. Document in DEVALOK_FORK_NOTES.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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
CI 'Build App' job fails on every push to fork main since the upstream sync. Failure: `npm ci` complains about missing `@babel/parser@7.29.7` etc.
Root cause: upstream's `package-lock.json` has a subtle inconsistency with a transitive babel dep. Upstream CI passes because warm npm cache satisfies the resolution. Our fork CI is cold-cache → hits the mismatch.
What works
`build_docker` in the same workflow uses the same lock file via `docker/Dockerfile` and succeeds — same job builds the Railway production image. Prod is unaffected.
Fix
Guard `build_app` job with `if: github.repository == 'documenso/documenso'` (same convention as PR #2). Keep `build_docker` running on fork — that's the real prod signal.
Document in DEVALOK_FORK_NOTES.md.
Alternatives considered
Test plan
🤖 Generated with Claude Code