paperclip/.github/workflows
Dotta 6e50ca9d0a
ci(runner): prepare target lockfile once for paid validation (#12774)
## Thinking Path

> - The trusted target-branch runner workflow checks out PR code before
paid tests.
> - PR policy intentionally forbids manual lockfile commits.
> - Some runner changes legitimately alter pnpm patch hashes.
> - Frozen installs therefore fail before test selection.
> - Resolve one script-disabled lockfile from the authorized immutable
target SHA and distribute it by exact artifact ID and digest.
> - Keep provider credentials and trusted reporting outside this
resolution job.

## Linked Issues or Issue Description

Target-branch paid runner campaigns currently fail frozen install when a
PR changes pnpm patch content, even though ordinary PR CI regenerates
the lockfile.

## What Changed

- Added one credential-free target-lock job that resolves the authorized
immutable target SHA with lifecycle scripts disabled.
- Uploaded the resolved lockfile with its SHA-256 and restored it by
exact artifact ID before every target-code frozen install.
- Left trusted reporting and history jobs on the workflow SHA.
- Changed the disabled-AWS fallback from unavailable ubuntu-latest-m to
ubuntu-latest.

## Risks

The workflow evaluates pnpm lockfile resolution from authorized target
code. That job receives no provider credentials, disables lifecycle
scripts, rejects unrelated workspace mutations, and exposes only a
digest-verified lockfile artifact. Paid-secret jobs consume only that
lockfile after exact artifact-ID and SHA-256 validation.

## Verification

- Runner workflow-security focused tests pass.
- actionlint passes.
- Prettier and git diff checks pass.

## Model Used

OpenAI Codex, GPT-5.

## Checklist

- [x] Change is narrowly scoped to paid runner orchestration.
- [x] Target lock resolution has no provider credentials and disables
lifecycle scripts.
- [x] Downloaded artifacts are selected by exact artifact ID and
verified by SHA-256.
- [x] Trusted reporting and history jobs remain on the workflow SHA.
2026-09-03 12:39:18 -05:00
..
agent-runtime-images.yml build(deps): bump actions/checkout from 6 to 7 (#8461) 2026-06-23 10:13:39 -07:00
commitperclip-review.yml fix(build): enforce Node 24 across Paperclip (#11792) 2026-08-21 10:17:52 -07:00
docker.yml chore(lockfile): refresh pnpm-lock.yaml (#12771) 2026-09-03 11:08:34 -05:00
e2e.yml test(runner): add full-stack acceptance and eval gates (#12700) 2026-09-02 08:55:08 -05:00
pr-trusted.yml chore(lockfile): refresh pnpm-lock.yaml (#12771) 2026-09-03 11:08:34 -05:00
pr.yml chore(deps): bump paperclipai/paperclip/.github/workflows/pr-trusted.yml from 39b8ee2960 to f038633bf5 (#12562) 2026-09-03 10:23:42 -07:00
refresh-lockfile.yml chore(lockfile): refresh pnpm-lock.yaml (#12771) 2026-09-03 11:08:34 -05:00
release-smoke.yml Follow the current onboarding arc in the release smoke (#12423) 2026-08-28 07:21:08 -07:00
release-verify.yml test(runner): add full-stack acceptance and eval gates (#12700) 2026-09-02 08:55:08 -05:00
release.yml fix(onboarding): restore browser launch and gate canaries (#12667) 2026-09-01 10:10:30 -05:00
runner-chaos-evals.yml test(runner): add full-stack acceptance and eval gates (#12700) 2026-09-02 08:55:08 -05:00
runner-full-stack-e2e.yml ci(runner): prepare target lockfile once for paid validation (#12774) 2026-09-03 12:39:18 -05:00
runner-live-evals.yml test(runner): add full-stack acceptance and eval gates (#12700) 2026-09-02 08:55:08 -05:00
storybook-visual.yml build(deps): bump actions/setup-node from 6 to 7 (#9884) 2026-07-21 12:04:06 -05:00