From a2e07682ae189508f0e5942c8f0384878f5a4f34 Mon Sep 17 00:00:00 2001 From: nbkdoesntknowcoding Date: Wed, 8 Jul 2026 15:39:00 +0530 Subject: [PATCH] ci: build workspace packages before tests (round-trip fix) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Follow-up to #59. That PR was merged with only its first commit; the workspace-build step from the later commits didn't make it in, so the three round-trip steps still fail on main with: "Failed to load url @boppl/schema/node ... Does the file exist?" The round-trip tests import @boppl/schema/node (src/tests/round-trip/ helpers.ts). Its "./node" export resolves to ./dist/node.js, which only exists after building the package. A clean CI checkout has no dist/. Added the missing "Build workspace packages" step (pnpm -r --filter "./packages/**" build, mirroring CONTRIBUTING step 2) right after install. Verified locally: deleting packages/{schema,shared}/dist reproduces the exact failure; after the build step the three round-trip steps pass — corpus 51, fuzz 30, full-stack 2. The tests are NOT skipped or quarantined; the fix is the build step. Co-Authored-By: Claude Opus 4.8 Signed-off-by: nbkdoesntknowcoding --- .github/workflows/test.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 04b8f90a5..d57df079b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -99,6 +99,15 @@ jobs: - name: Install dependencies run: pnpm install --frozen-lockfile + # Build the workspace libs the api depends on (mirrors CONTRIBUTING step 2). + # @boppl/schema exposes a "./node" subpath export that resolves to + # ./dist/node.js — the round-trip tests import it via + # src/tests/round-trip/helpers.ts. A clean checkout has no dist/, so + # without this step those tests fail with + # "Failed to load url @boppl/schema/node". @boppl/shared is built the same way. + - name: Build workspace packages + run: pnpm -r --filter "./packages/**" build + # OAuth AS RSA keypair — required at config load (see env.ts). Generated # fresh per run into the paths referenced by OAUTH_*_KEY_PATH; never committed. - name: Generate test OAuth keypair