Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# CI/CD baseline: any change to the workflow or root workspace config
# requires a maintainer review. Keeps the release train safe.
.github/workflows/ @ninan-versioning
package.json @ninan-versioning
pnpm-workspace.yaml @ninan-versioning
45 changes: 45 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: CI

on:
pull_request:
branches: [main]
push:
branches: [main]

# Cancel superseded runs on the same ref
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
typecheck-and-test:
name: Typecheck + Test (Node 20, pnpm)
runs-on: ubuntu-latest
timeout-minutes: 20

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9.12.0
run_install: false

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
# NOTE: `cache: pnpm` requires a root pnpm-lock.yaml. There isn't one
# yet because main is prose-only. Re-add caching in a follow-up PR
# after the first connector (#15) lands with a real lockfile.

- name: Install dependencies
run: pnpm install --no-frozen-lockfile

- name: Typecheck (all packages)
run: pnpm -r --if-present run typecheck

- name: Test (all packages)
run: pnpm -r --if-present run test
1 change: 1 addition & 0 deletions .nvmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20
17 changes: 17 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"name": "shoploop",
"version": "0.0.0",
"private": true,
"description": "Shoploop monorepo root. Workspace orchestration only — no runtime code lives here.",
"license": "UNLICENSED",
"packageManager": "pnpm@9.12.0",
"engines": {
"node": ">=20"
},
"scripts": {
"typecheck": "pnpm -r --if-present run typecheck",
"test": "pnpm -r --if-present run test",
"build": "pnpm -r --if-present run build",
"ci": "pnpm run typecheck && pnpm run test"
}
}
4 changes: 4 additions & 0 deletions pnpm-workspace.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
packages:
- "connectors/*"
- "packages/*"
- "apps/*"
Loading