ci: add PR pipeline (pnpm via corepack, turbo typecheck, tests, build) - #3
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 onubuntu-latest:actions/checkout@v4,actions/setup-node@v4)corepack enable; the scaffold's rootpackageManagerfield will pin the exact pnpm version once it lands (corepack falls back to its default until then)pnpm-lock.yamlhash (official pnpm caching recipe), so installs warm up after the scaffold landspnpm install --frozen-lockfile— CI never mutates the lockfilepnpm turbo run typecheckpnpm turbo run test— meaningful unit tests live in the domain/extraction packages per the agreed structure; running the turbotesttask covers every package defining tests without hardcoding package namespnpm turbo run buildExtras:
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 rootpackage.json/pnpm-lock.yamlon master:pnpm install --frozen-lockfileERR_PNPM_NO_LOCKFILE: no scaffold yet, so no rootpackage.json/pnpm-lock.yamlpnpm turbo run typecheck/test/buildturbo.jsonPlan 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 rootpackage.jsonso CI installs cleanly.How to Review
.github/workflows/ci.ymlchanged — single job, linear steps, no matrix.pnpm turbo run testdeliberately has no--filterflags: the scaffold owns package naming, and turbo runs thetesttask wherever it is defined (domain/extraction).pull_request→ master), turbo remote caching (no token available), and job splitting (single-job is fine at this size).Test Evidence
ERR_PNPM_NO_LOCKFILE), typecheck/test/build pending scaffold.Human author: Gilbert Polanco (gilbertpolanco42@gmail.com)
🔗 Obvious Project · 🧵 Obvious Thread