Basilic
Deployment

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: true

See 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:

  1. File blocking - Prevents committing sensitive files (.env, *.pem, etc.)
  2. Secret scanning - Scans staged files with gitleaks
  3. Formatting - Runs Biome formatter on staged files

Best Practices

  1. Run checks locally - Fix issues before pushing

    pnpm lint
    pnpm checktypes
    pnpm test
  2. Review CodeRabbit suggestions - Learn from AI feedback and iterate

  3. Keep workflows fast - Use caching and parallel jobs

  4. Test before merge - Ensure all checks pass before merging

  5. 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)

On this page