Claude-skill-registry exa-ci-integration

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/exa-ci-integration-helixdevelopment-helixagent" ~/.claude/skills/majiayu000-claude-skill-registry-exa-ci-integration && rm -rf "$T"
manifest: skills/data/exa-ci-integration-helixdevelopment-helixagent/SKILL.md
source content

Exa CI Integration

Overview

Set up CI/CD pipelines for Exa integrations with automated testing.

Prerequisites

  • GitHub repository with Actions enabled
  • Exa test API key
  • npm/pnpm project configured

Instructions

Step 1: Create GitHub Actions Workflow

Create

.github/workflows/exa-integration.yml
:

name: Exa Integration Tests

on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

env:
  EXA_API_KEY: ${{ secrets.EXA_API_KEY }}

jobs:
  test:
    runs-on: ubuntu-latest
    env:
      EXA_API_KEY: ${{ secrets.EXA_API_KEY }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'
      - run: npm ci
      - run: npm test -- --coverage
      - run: npm run test:integration

Step 2: Configure Secrets

gh secret set EXA_API_KEY --body "sk_test_***"

Step 3: Add Integration Tests

describe('Exa Integration', () => {
  it.skipIf(!process.env.EXA_API_KEY)('should connect', async () => {
    const client = getExaClient();
    const result = await client.healthCheck();
    expect(result.status).toBe('ok');
  });
});

Output

  • Automated test pipeline
  • PR checks configured
  • Coverage reports uploaded
  • Release workflow ready

Error Handling

IssueCauseSolution
Secret not foundMissing configurationAdd secret via
gh secret set
Tests timeoutNetwork issuesIncrease timeout or mock
Auth failuresInvalid keyCheck secret value

Examples

Release Workflow

on:
  push:
    tags: ['v*']

jobs:
  release:
    runs-on: ubuntu-latest
    env:
      EXA_API_KEY: ${{ secrets.EXA_API_KEY_PROD }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: '20'
      - run: npm ci
      - name: Verify Exa production readiness
        run: npm run test:integration
      - run: npm run build
      - run: npm publish

Branch Protection

required_status_checks:
  - "test"
  - "exa-integration"

Resources

Next Steps

For deployment patterns, see

exa-deploy-integration
.