GitHub Actions
Continuous integration workflows for automated testing, linting, and security checks.
GitHub Actions workflows automate quality checks on pull requests (opened and updated).
Workflows
Path filters are used only for test workflows (app E2E and package unit tests) so they run when relevant code changes. Lint and security run on every PR. Path patterns are defined in each workflow file.
Next (next-e2e.yml)
Build → Unit → E2E. Triggers on pull request when apps/next/**, shared packages, or openapi change. Single job: build (with localhost API URL), unit tests, E2E via test:e2e:local (spawns Fastify + Next locally).
API (api-e2e.yml)
Build → Unit → E2E. Triggers on pull request when apps/fastify/** or shared packages change. Single job: build, unit tests, E2E via test:e2e:local (spawns API locally, runs Scalar login E2E).
Packages (packages-test.yml)
Unit tests for shared packages (core, react, sentry, etc.). Triggers on pull request when packages/** or tools/** change. Excludes app tests (handled by api-e2e, next-e2e).
Docu (Vercel)
No dedicated CI workflow. Docu deploys via Vercel from Git with turbo-ignore; builds run only when apps/docu/** or shared packages change.
See E2E Testing for details.
Lint (lint.yml)
Linting and type checking on every PR. Supports workflow_dispatch for manual runs.
Security (security.yml)
Security scans (gitleaks, TruffleHog, OSV Scanner, pnpm audit) on every PR and push to main.
CodeRabbit Integration
CodeRabbit automatically reviews pull requests using AI. Configuration is in .coderabbit.yaml:
# .coderabbit.yaml (simplified)
language: en-US
reviews:
auto_review: true
high_level_summary: trueSee the complete .coderabbit.yaml in the repository root for full configuration.
Pre-commit Hooks
Local quality checks run before each commit:
// package.json (simplified)
{
"simple-git-hooks": {
"pre-commit": "pnpm run hooks:pre-commit"
}
}Pre-commit hooks check:
- File blocking - Prevents committing sensitive files (
.env,*.pem, etc.) - Secret scanning - Scans staged files with gitleaks
- Formatting - Runs Biome formatter on staged files
Best Practices
-
Run checks locally - Fix issues before pushing
pnpm lint pnpm checktypes pnpm test -
Review CodeRabbit suggestions - Learn from AI feedback and iterate
-
Keep workflows fast - Use caching and parallel jobs
-
Test before merge - Ensure all checks pass before merging
-
Monitor CI failures - Fix broken workflows immediately
Workflow Files
All workflows are in .github/workflows/:
next-e2e.yml- Next: unit → E2E (local servers, path-filtered)api-e2e.yml- API: unit → E2E (local servers, path-filtered)packages-test.yml- Packages: unit tests (path-filtered)lint.yml- Linting checks (every PR)security.yml- Security scans (every PR and push to main)
Related Documentation
- Security - Security scanning and secret detection
- Testing - Testing strategies and patterns
- Deployment Overview - GitHub Flow and deployment platforms