From 2ab3463debadd335600e26404eebc22cc0ab667b Mon Sep 17 00:00:00 2001 From: Dotta Date: Thu, 3 Sep 2026 06:29:30 -0500 Subject: [PATCH] ci(runner): build breadth provider artifacts --- .github/workflows/runner-full-stack-e2e.yml | 4 ++-- tests/runner-e2e/workflow-security.test.ts | 16 ++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/.github/workflows/runner-full-stack-e2e.yml b/.github/workflows/runner-full-stack-e2e.yml index 54f80ebe3b..75aadd5945 100644 --- a/.github/workflows/runner-full-stack-e2e.yml +++ b/.github/workflows/runner-full-stack-e2e.yml @@ -330,11 +330,11 @@ jobs: run: pnpm --filter @paperclipai/paperclip-eval-kernel build - name: Build local JS-backed provider artifacts - if: matrix.environmentId == 'local' && (matrix.profileId == 'runner-opencode' || startsWith(matrix.profileId, 'runner-acpx-')) + if: matrix.environmentId == 'local' && (matrix.profileId == 'runner-opencode' || startsWith(matrix.profileId, 'runner-acpx-') || matrix.suiteId == 'openrouter-model-breadth') run: pnpm --filter @paperclipai/paperclip-runner build:typescript - name: Qualify local provider Node interpreter - if: matrix.environmentId == 'local' && (matrix.profileId == 'runner-opencode' || startsWith(matrix.profileId, 'runner-acpx-')) + if: matrix.environmentId == 'local' && (matrix.profileId == 'runner-opencode' || startsWith(matrix.profileId, 'runner-acpx-') || matrix.suiteId == 'openrouter-model-breadth') run: | node <<'NODE' const fs = require("node:fs"); diff --git a/tests/runner-e2e/workflow-security.test.ts b/tests/runner-e2e/workflow-security.test.ts index fb7479725e..f6509bca3b 100644 --- a/tests/runner-e2e/workflow-security.test.ts +++ b/tests/runner-e2e/workflow-security.test.ts @@ -117,6 +117,22 @@ describe("public repository paid workflow security", () => { } }); + it("prepares every local JS-backed provider before paid execution", async () => { + const workflow = await readFile( + path.join(repositoryRoot, ".github/workflows/runner-full-stack-e2e.yml"), + "utf8", + ); + const jsBackedLocalCondition = + "matrix.environmentId == 'local' && (matrix.profileId == 'runner-opencode' || startsWith(matrix.profileId, 'runner-acpx-') || matrix.suiteId == 'openrouter-model-breadth')"; + + expect(workflow).toContain("Build local JS-backed provider artifacts"); + expect(workflow).toContain("Qualify local provider Node interpreter"); + expect(workflow.split(jsBackedLocalCondition)).toHaveLength(3); + expect(workflow).toContain( + "pnpm --filter @paperclipai/paperclip-runner build:typescript", + ); + }); + it("uses environment-scoped OIDC for a no-delete history publisher", async () => { const workflow = await readFile( path.join(repositoryRoot, ".github/workflows/runner-full-stack-e2e.yml"),