From b0decefbe94991b2b032615bd43f7eb83daef194 Mon Sep 17 00:00:00 2001 From: Dotta Date: Thu, 1 Oct 2026 14:46:43 -0500 Subject: [PATCH] ci: prepare SDK exports before isolated root tests Match the existing grouped CI prerequisite by compiling shared and plugin SDK exports before running the unfiltered root tests on a clean ignore-scripts install. Retain bounded prerequisite logs and exit status. Co-Authored-By: Paperclip --- .github/workflows/docker-runner-check.yml | 14 ++++++++++++-- doc/DEVELOPING.md | 4 +++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docker-runner-check.yml b/.github/workflows/docker-runner-check.yml index e564a74488..2c445b267d 100644 --- a/.github/workflows/docker-runner-check.yml +++ b/.github/workflows/docker-runner-check.yml @@ -228,7 +228,7 @@ jobs: if: github.event_name == 'workflow_dispatch' && inputs.verify_source needs: authorize_manual runs-on: ubuntu-latest - timeout-minutes: ${{ inputs.source_root_tests_only && 195 || 290 }} + timeout-minutes: ${{ inputs.source_root_tests_only && 200 || 295 }} permissions: contents: read env: @@ -273,7 +273,7 @@ jobs: printf 'not-run\n' > "remote-source-verification/check-$index.status" : > "remote-source-verification/check-$index.log" done < remote-source-verification/commands.txt - for phase in resolution lock-check install; do + for phase in resolution lock-check install test-build-deps; do printf 'not-run\n' > "remote-source-verification/$phase.status" : > "remote-source-verification/$phase.log" done @@ -306,6 +306,16 @@ jobs: printf '0\n' > remote-source-verification/lock-check.status phase=install pnpm install --frozen-lockfile --ignore-scripts > remote-source-verification/install.log 2>&1 + - name: Build workspace prerequisites used by the root tests + timeout-minutes: 5 + run: | + set -euo pipefail + # Match test:run:general and test:run:serialized on a clean checkout. + # The SDK exports dist files, which an ignore-scripts install cannot provide. + trap 'printf "%s\n" "$?" > remote-source-verification/test-build-deps.status' EXIT + timeout --verbose --signal=TERM --kill-after=15s 4m \ + pnpm --filter @paperclipai/plugin-sdk ensure-build-deps \ + > remote-source-verification/test-build-deps.log 2>&1 - name: Run every source check and retain each result timeout-minutes: ${{ inputs.source_root_tests_only && 182 || 273 }} run: | diff --git a/doc/DEVELOPING.md b/doc/DEVELOPING.md index 11725e2330..09fb8e8613 100644 --- a/doc/DEVELOPING.md +++ b/doc/DEVELOPING.md @@ -61,7 +61,9 @@ provider credentials are supplied. To repeat only the full root test suite, also set `source_root_tests_only=true`. This modifier requires `verify_source=true` and the same source/lock guards. It -runs the exact `pnpm test:run` command without test filters and retains a +builds the shared/plugin SDK prerequisites using the same `ensure-build-deps` +helper as grouped CI, then runs the exact `pnpm test:run` command without test +filters and retains a `source-root-tests-` artifact. Root tests have a 180-minute command limit in both modes: they execute the server groups serially, while ordinary PR CI distributes those groups across many shards. Other checks keep their