From 03b97065352232e0687b72c81060e7dcf7bbfea6 Mon Sep 17 00:00:00 2001 From: dcccrypto Date: Thu, 6 Aug 2026 09:57:13 +0100 Subject: [PATCH] ci(sdk-smoke): check out percolator-sdk as a sibling so the nightly can install (#232) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The SDK publish smoke has failed every night for at least a week. It has never reached an assertion — it dies at install: ENOENT: no such file or directory, scandir '/home/runner/work/percolator-sdk' Process completed with exit code 254 package.json and pnpm-lock.yaml resolve @percolatorct/sdk as `file:../../percolator-sdk`, so a bare checkout has no SDK to install. ci.yml gets this treatment in #233; sdk-smoke.yml was left out, so the nightly stays red regardless of which version is pinned. The pin is NOT the problem here, which is worth stating because the two sibling repos failed for that reason and the same conclusion does not transfer. Verified locally by running this repo's own tests/sdk-smoke.test.ts against both the pinned version and latest: @percolatorct/sdk@1.0.0-beta.33 → 30 passed (30) @percolatorct/sdk@4.3.0 → 30 passed (30) Both green. So this repo needs only the checkout; percolator-keeper#395 and percolator-indexer#192 needed version bumps because their smoke suites moved to v17 assertions while their pins did not. Copies the block #233 adds to ci.yml verbatim, including the two-levels-up path note (`/work/percolator-api/percolator-api` → `/work`), which differs from percolator-indexer#172's one level. --- .github/workflows/sdk-smoke.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/.github/workflows/sdk-smoke.yml b/.github/workflows/sdk-smoke.yml index a36b486..a49ca60 100644 --- a/.github/workflows/sdk-smoke.yml +++ b/.github/workflows/sdk-smoke.yml @@ -73,6 +73,28 @@ jobs: # packages (hono, vitest, @solana/web3.js …) are present, then override # only the SDK dep to the target npm version. --no-frozen-lockfile is # intentional: we are mutating one dep, not reproducing a build. + # #232: package.json + pnpm-lock.yaml resolve @percolatorct/sdk as + # `file:../../percolator-sdk`, so a bare checkout has no SDK to install and + # the install below dies with + # `ENOENT ... scandir '/work/percolator-sdk'` (exit 254) — which is + # what this nightly has actually been failing on, before any SDK version is + # ever resolved. ci.yml gets this treatment in #233; sdk-smoke.yml was left + # out, so the smoke stayed red even with a correct pin. + # Path is TWO levels up: from `/work/percolator-api/percolator-api` + # that is `/work`. actions/checkout cannot write outside + # GITHUB_WORKSPACE, so check out into the workspace and then move it up. + # percolator-sdk is public, so the default token suffices. + - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + with: + repository: dcccrypto/percolator-sdk + ref: main + path: _percolator-sdk + - name: Place @percolatorct/sdk as a sibling checkout (#232) + run: | + rm -rf ../../percolator-sdk + mv _percolator-sdk ../../percolator-sdk + test -f ../../percolator-sdk/dist/index.js || { echo "SDK dist/ missing — the SDK repo ships a committed dist; aborting"; exit 1; } + - name: Install dependencies (frozen lockfile for non-SDK packages) run: pnpm install --frozen-lockfile