Skip to content

docs(readme): clarify tests versus intent #11

docs(readme): clarify tests versus intent

docs(readme): clarify tests versus intent #11

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
lint-and-typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- run: pnpm build
- name: Lint
run: pnpm lint
- name: Type-check
run: pnpm typecheck
- name: Format check
run: pnpm format:check
go-qa:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version-file: packages/golangci-lint/go.mod
- name: Verify Go formatting
run: test -z "$(cd packages/golangci-lint && gofmt -l analyzer plugin)"
- name: Verify Go analyzer
run: cd packages/golangci-lint && go test ./...
test:
runs-on: ubuntu-latest
needs: [lint-and-typecheck, go-qa]
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- run: pnpm build
- name: Run tests with coverage
run: pnpm --filter @recallnet/codecontext-parser test:coverage
build-verify:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v2
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: "pnpm"
- uses: actions/setup-go@v5
with:
go-version-file: packages/golangci-lint/go.mod
- run: pnpm install --frozen-lockfile
- name: Build all packages
run: pnpm build
- name: Verify CLI entry point
run: node packages/cli/dist/index.js --help
- name: Verify parser exports
run: node -e "const m = await import('./packages/parser/dist/index.js'); if (!m.parseContextTags) throw new Error('Missing export'); console.log('Parser exports OK');"
- name: Verify ESLint plugin exports
run: node -e "const m = await import('./packages/eslint-plugin/dist/index.js'); if (!m.default?.rules) throw new Error('Missing rules'); console.log('ESLint plugin exports OK');"
- name: Verify Go analyzer package
run: pnpm go:test
changeset-check:
runs-on: ubuntu-latest
if: github.event_name == 'pull_request'
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: pnpm/action-setup@v2
with:
version: 10
- uses: actions/setup-node@v4
with:
node-version: 22
cache: "pnpm"
- run: pnpm install --frozen-lockfile
- name: Check for changesets
run: |
CHANGED=$(git diff --name-only origin/main...HEAD | grep -E '^packages/(parser|cli|eslint-plugin)/src/' || true)
if [ -n "$CHANGED" ]; then
CHANGESETS=$(git diff --name-only origin/main...HEAD | grep -E '^\.changeset/.*\.md$' || true)
if [ -z "$CHANGESETS" ]; then
echo "::warning::Source files changed in publishable packages but no changeset found. Run 'pnpm changeset' before merging."
fi
fi