CLI Reference

Command-line interface for CI/CD integration

Installation

# Install globally
pnpm add -g @flakiness-detective/cli

# Or use npx (no installation needed)
npx @flakiness-detective/cli --help

Commands

detect

Run flakiness detection on test failures.

flakiness-detective detect [options]

Options

--adapter <type>

Data adapter: in-memory, filesystem, firestore (default: in-memory)

--embedding <type>

Embedding provider: google, mock (default: mock)

--days <number>

Time window in days (default: 7)

--epsilon <number>

DBSCAN epsilon value (default: 0.15)

--min-points <number>

DBSCAN minPoints (default: 2)

--distance <metric>

Distance metric: cosine, euclidean (default: cosine)

--max-clusters <number>

Maximum clusters to return (default: 5)

--verbose, -v

Enable debug mode with detailed logging

Examples

# Basic usage
flakiness-detective detect

# With Firestore and Google AI
flakiness-detective detect \
  --adapter=firestore \
  --embedding=google \
  --days=14

# Debug mode
flakiness-detective detect --verbose

# Custom clustering parameters
flakiness-detective detect \
  --epsilon=0.2 \
  --min-points=3 \
  --distance=euclidean

report

Generate a report from saved clusters.

flakiness-detective report [options]

Options:
  --limit <number>    Maximum clusters to show (default: 10)
  --output <format>   Output format: console, json (default: console)

Configuration Files

The CLI supports configuration files for easier management:

Supported Files

  • .flakinessrc.json
  • .flakinessrc.js
  • flakiness-detective.config.js
  • .flakinessrc.ts
  • flakiness-detective.config.ts
  • package.json (flakinessDetective field)

Example Configuration

// .flakinessrc.json
{
  "adapter": {
    "type": "firestore",
    "failuresCollection": "test_failures",
    "clustersCollection": "flaky_clusters"
  },
  "embedding": {
    "type": "google",
    "model": "text-embedding-004"
  },
  "timeWindow": {
    "days": 7
  },
  "clustering": {
    "epsilon": 0.15,
    "minPoints": 2,
    "distance": "cosine",
    "maxClusters": 5
  }
}

CLI arguments take precedence over config files.

CI/CD Integration

GitHub Actions

name: Detect Flaky Tests
on: [push]

jobs:
  detect:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 22
      
      - name: Install CLI
        run: npm install -g @flakiness-detective/cli
      
      - name: Detect Flaky Tests
        run: |
          flakiness-detective detect \
            --adapter=firestore \
            --embedding=google \
            --verbose
        env:
          GOOGLE_AI_API_KEY: ${{ secrets.GOOGLE_AI_API_KEY }}