← All docs

CI Integration

Integrate MigrationPilot with GitHub Actions, GitLab CI, Bitbucket Pipelines, and other CI systems.

GitHub Actions

Use the official GitHub Action for the best experience with automatic PR comments. See the GitHub Action page for full details.

- uses: mickelsamuel/migrationpilot@v1
  with:
    path: migrations/
    fail-on: critical

GitLab CI

Add MigrationPilot to your .gitlab-ci.yml pipeline:

migration-check:
  stage: test
  image: node:22-slim
  script:
    - npx migrationpilot check ./migrations --fail-on critical
  rules:
    - changes:
        - migrations/**/*.sql

Bitbucket Pipelines

Add MigrationPilot to your bitbucket-pipelines.yml:

pipelines:
  pull-requests:
    '**':
      - step:
          name: Migration Safety Check
          image: node:22-slim
          script:
            - npx migrationpilot check ./migrations --fail-on critical

Generic CI (Jenkins, CircleCI, etc.)

MigrationPilot works with any CI system that supports Node.js:

# Install and run
npm install -g migrationpilot
migrationpilot check ./migrations --fail-on critical --format json

# Or use npx (no install needed)
npx migrationpilot check ./migrations --fail-on critical

Exit Codes

MigrationPilot uses standard exit codes for CI integration: 0 means no issues found, 1 means warnings detected (when --fail-on warning), and 2 means critical violations detected. Use --fail-on never to always exit 0.

Output Formats

Choose the output format that works best for your CI system:

# Human-readable (default)
migrationpilot check ./migrations

# JSON for parsing
migrationpilot check ./migrations --format json

# SARIF for code scanning
migrationpilot check ./migrations --format sarif

# Markdown for reports
migrationpilot check ./migrations --format markdown

# Quiet mode (one line per violation)
migrationpilot analyze migration.sql --quiet