Skip to content

ci: add PR pipeline (pnpm via corepack, turbo typecheck, tests, build) - #3

Merged
OCPdev25 merged 1 commit into
masterfrom
ci/pipeline
Sep 17, 2026
Merged

OCPdev25 merged 1 commit into
masterfrom
ci/pipeline

Conversation

@obvious-autobuild

@obvious-autobuild obvious-autobuild Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Why

PRs to master currently have no automated verification — nothing runs install, typecheck, tests, or build before merge. This PR adds the CI pipeline for the agreed monorepo scaffold: pnpm (via corepack) on Node 20, turbo-orchestrated typecheck, unit tests, and build, triggered on every pull request to master.

What

.github/workflows/ci.yml — single job on ubuntu-latest:

  1. Checkout + Node 20 (actions/checkout@v4, actions/setup-node@v4)
  2. pnpm via corepack — corepack enable; the scaffold's root packageManager field will pin the exact pnpm version once it lands (corepack falls back to its default until then)
  3. pnpm store cache — keyed on the pnpm-lock.yaml hash (official pnpm caching recipe), so installs warm up after the scaffold lands
  4. pnpm install --frozen-lockfile — CI never mutates the lockfile
  5. pnpm turbo run typecheck
  6. pnpm turbo run test — meaningful unit tests live in the domain/extraction packages per the agreed structure; running the turbo test task covers every package defining tests without hardcoding package names
  7. pnpm turbo run build

Extras: permissions: contents: read (least privilege), a concurrency group that cancels superseded runs on the same PR, and a 20-minute job timeout.

Observed check-run evidence (run 35252315921, head fdd5122)

This branch contains only .github/workflows/ci.yml; the monorepo scaffold (feat/monorepo-scaffold, todo_8cISFrEW) has not merged yet, so there is no root package.json / pnpm-lock.yaml on master:

Step Result Why
Checkout, Node 20 setup ✅ success —
Enable pnpm via corepack ✅ success Workflow mechanism verified live
pnpm store path + cache restore ✅ success —
pnpm install --frozen-lockfile ❌ failure — expected ERR_PNPM_NO_LOCKFILE: no scaffold yet, so no root package.json/pnpm-lock.yaml
pnpm turbo run typecheck / test / build ⏸ skipped Depend on install; turbo tasks come from the scaffold's turbo.json

Plan per the task: the PR stays open, gets rebased onto master once the scaffold merges, and all steps re-run on the fresh SHA.

Note for the scaffold PR: pnpm ≥10 blocks dependency postinstall scripts by default — declare any needed pnpm.onlyBuiltDependencies (e.g. esbuild/sharp) in the root package.json so CI installs cleanly.

How to Review

  • Only .github/workflows/ci.yml changed — single job, linear steps, no matrix.
  • pnpm turbo run test deliberately has no --filter flags: the scaffold owns package naming, and turbo runs the test task wherever it is defined (domain/extraction).
  • Intentionally excluded: a push-to-master trigger (brief scopes to pull_request → master), turbo remote caching (no token available), and job splitting (single-job is fine at this size).

Test Evidence

  • Workflow YAML validated locally (parse + structural assertions on triggers, permissions, and all seven steps).
  • Live check-run evidence: run 35252315921 — all pnpm/corepack/cache/setup steps green; install fails solely on the missing scaffold manifests (ERR_PNPM_NO_LOCKFILE), typecheck/test/build pending scaffold.

Human author: Gilbert Polanco (gilbertpolanco42@gmail.com)

🔗 Obvious Project · 🧵 Obvious Thread

Workflow runs on pull_request to master: Node 20, pnpm enabled through
corepack, frozen-lockfile install with a pnpm store cache, then turbo
typecheck, unit tests, and build.

Package-level steps stay red until the monorepo scaffold
(feat/monorepo-scaffold, todo_8cISFrEW) merges and this branch rebases
onto it; everything up to and including pnpm setup runs green today.

Co-authored-by: Gilbert Polanco <gilbertpolanco42@gmail.com>
@obvious-autobuild
obvious-autobuild Bot marked this pull request as ready for review September 17, 2026 17:22
@OCPdev25
OCPdev25 merged commit 8221b41 into master Sep 17, 2026
1 check failed
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.

2 participants