From da0e8206eec7636b18f0c586872e7a99652103cc Mon Sep 17 00:00:00 2001 From: Mudit Lal Date: Fri, 5 Jun 2026 00:21:58 +0530 Subject: [PATCH] chore(ci): guard build_app job (lock-file/babel mismatch on cold cache) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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) --- .github/workflows/ci.yml | 4 ++++ DEVALOK_FORK_NOTES.md | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 55ed7f27d..beb670c01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,10 @@ concurrency: jobs: build_app: + # Guarded on fork: upstream lock-file relies on warm npm cache that fork + # CI doesn't have, causing transient babel resolve mismatches. Docker build + # below still runs and IS the real prod signal (Railway uses Dockerfile). + if: github.repository == 'documenso/documenso' name: Build App runs-on: ubuntu-latest steps: diff --git a/DEVALOK_FORK_NOTES.md b/DEVALOK_FORK_NOTES.md index 91d8dc22e..f6c165708 100644 --- a/DEVALOK_FORK_NOTES.md +++ b/DEVALOK_FORK_NOTES.md @@ -42,6 +42,7 @@ This is intentional. The workflows are left in place so upstream merges stay cle | File | Why | |---|---| +| `ci.yml` (build_app job only) | Upstream npm cache hides a lock-file/babel mismatch; cold-cache fork CI fails. `build_docker` (the real prod signal) still runs on fork. | | `deploy.yml` | Pushes `main` → `release` using upstream `GH_TOKEN` | | `e2e-tests.yml` | Uses `warp-ubuntu-*` runners only available to upstream | | `first-interaction.yml` | Welcome message linking to upstream Discord | @@ -59,7 +60,7 @@ This is intentional. The workflows are left in place so upstream merges stay cle ### Kept (run on fork) -- `ci.yml` — build + Docker image (no upstream secrets) +- `ci.yml` — only the `build_docker` job (Docker build = real prod signal). `build_app` job guarded above. - `codeql-analysis.yml` — security scan (uses only `GITHUB_TOKEN`) ## Railway deploy