Skip to content

chore(ci): run the PR gate through pnpm pipeline task cache - #255

Merged
harlan-zw merged 4 commits into
mainfrom
feat-pipeline-task-cache
Sep 22, 2026
Merged

harlan-zw merged 4 commits into
mainfrom
feat-pipeline-task-cache

Conversation

@harlan-zw

@harlan-zw harlan-zw commented Sep 18, 2026 •

Copy link
Copy Markdown
Collaborator

🔗 Linked issue

❓ Type of change

  • 🧹 Chore

📚 Description

Every push of a PR re-runs lint, typecheck, and test in a fresh container, even when a push touches one markdown file. The pool is getting a shared cache volume (hogwild-gh-runner#10) and pnpm pipeline can use it: an unchanged task restores its outputs and replays its log instead of re-running.

The gate now runs with task-cache: true. harlan-nuxt#159 merged as 75ff091, so the pin is back on @main; the feature-branch pin existed only to prove this gate change end to end before it landed. The graph lives in pnpm-workspace.yaml: dev:prepare declares .nuxt/** outputs with config-only inputs, so the 30-90s Nuxt prepare restores on every push that does not move the app tree, and vitest keeps its .nuxt/tsconfig.json without the old prepare-command step.

pnpm moves to 12.4.2, the first line that accepts task settings. The lockfile gains the pnpm self-dependency block and nothing else moves. Lint task carries no inputs on purpose: eslint . reads the whole repository, so narrowing its key would replay a pass over files lint never saw.

Ran the test pipeline locally before pushing: 272 files, 1947 tests passed cold, then the second run restored dev:prepare and test from cache and replayed. The cache hits only start counting once the new supervisor is installed on Hogwild and the desktop; until then this runs as a normal cold gate.

The gate after this change: three required checks still, but each one now runs pnpm pipeline, which reads the repository task graph and restores unchanged task outputs from the pool's shared cache volume

One gate job on a second push: pnpm pipeline reads the task graph, looks up a key per task, gets a hit, restores .nuxt and replays the recorded log, and the job reports green without re-running

🤖 AI disclosure: Harlan Agent Kit modified this description.

@harlan-github-agent harlan-github-agent Bot added harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. labels Sep 18, 2026
@harlan-github-agent

harlan-github-agent Bot commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

🤖 MERGED

Harlan Agent Kit posted this automated review. It is not Harlan's personal review or approval. AI open source policy. Last updated: 2026-09-22 03:04 UTC.

GitHub merged this pull request.

  • A PR that touches only workers/artifact-signer gets a green test job that runs no tests at all. Next: Preserve the base guarantee for the test job: pass --full to pnpm pipeline test on pull_request events too (task caching still replays unchanged tasks, so the savings largely remain), or re-add the worker suite as a pipeline task whose vi

182330b4-13c1-4d02-a9d7-e71ee65b7675

@harlan-github-agent harlan-github-agent Bot added harlan-agent-running An Agent holds a Task on this issue or pull request right now. and removed harlan-agent-running An Agent holds a Task on this issue or pull request right now. labels Sep 18, 2026
@harlan-github-agent harlan-github-agent Bot removed the harlan-agent-running An Agent holds a Task on this issue or pull request right now. label Sep 18, 2026
@harlan-zw

Copy link
Copy Markdown
Collaborator Author

Checked by hand, since CI cannot show it (the pool has no cache volume until the new supervisor is installed):

  • pnpm pipeline test cold, local: 272 files, 1947 tests passed through the graph
  • Same command again: dev:prepare and test restored from cache, logs replayed, no re-run
  • XDG_CACHE_HOME relocation verified, which is the exact mechanism the runner volume uses

First CI run caught the artifact-signer suite failing for want of root .nuxt; that is the cross-project ordering limit described in pnpm-workspace.yaml, not a flake.

@harlan-github-agent harlan-github-agent Bot added harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-blocked The automated Review found a material defect in this head commit. and removed harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-review-required Pull request triage requires an adversarial Review for this head commit. labels Sep 18, 2026
24 suites import scripts/ or checks/, so a scripts-only push replayed a stale green test result. vue-tsc does not reach scripts/ today, but the generated tsconfig that decides its reach can drift, so typecheck hashes the same trees.
@harlan-github-agent harlan-github-agent Bot added harlan-agent-running An Agent holds a Task on this issue or pull request right now. and removed harlan-agent-blocked The automated Review found a material defect in this head commit. labels Sep 18, 2026
@harlan-zw

Copy link
Copy Markdown
Collaborator Author

Checked by hand for the review findings, since CI cannot show either:

  • Finding 1 (stale green test replay) is real: 24 suites import scripts/ or checks/, so a scripts-only push left the test key unchanged. Both trees now hash into the test and typecheck keys.
  • Finding 2 (stale typecheck replay) does not reproduce as stated: with a deliberate type error planted in scripts/, nuxt typecheck exits 0, so vue-tsc does not reach that tree today. The glob is in typecheck inputs anyway, because the generated tsconfig that sets its reach can drift, and a false miss costs seconds where a false hit ships a bug.

🤖 AI disclosure: Harlan Agent Kit wrote this comment.

@harlan-github-agent harlan-github-agent Bot added harlan-agent-blocked The automated Review found a material defect in this head commit. and removed harlan-agent-running An Agent holds a Task on this issue or pull request right now. labels Sep 18, 2026
harlan-nuxt#159 merged as 75ff091, so the reusable gate carries task-cache
mode on main. The feature-branch pin was temporary, to prove the gate change
end to end before it landed.
@harlan-github-agent harlan-github-agent Bot added harlan-agent-running An Agent holds a Task on this issue or pull request right now. harlan-agent-blocked The automated Review found a material defect in this head commit. and removed harlan-agent-blocked The automated Review found a material defect in this head commit. harlan-agent-running An Agent holds a Task on this issue or pull request right now. labels Sep 21, 2026
@harlan-zw
harlan-zw merged commit c35a2f6 into main Sep 22, 2026
11 checks passed
@harlan-github-agent harlan-github-agent Bot removed the harlan-agent-blocked The automated Review found a material defect in this head commit. label Sep 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant