Configure Groq CI/CD integration with GitHub Actions and testing.
Use when setting up automated testing, configuring CI pipelines,
or integrating Groq tests into your build process.
Trigger with phrases like "groq CI", "groq GitHub Actions",
"groq automated tests", "CI groq".
Set up CI/CD pipelines for Groq integrations with unit tests (mocked), integration tests (live API), and model deprecation checks. Groq's fast inference makes live integration tests practical in CI -- a completion round-trip takes < 500ms.
Prerequisites
GitHub repository with Actions enabled
Groq API key stored as GitHub secret
vitest or jest for testing
Instructions
Step 1: GitHub Actions Workflow
# .github/workflows/groq-tests.yml
name: Groq Integration Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "0 6 * * 1" # Weekly model deprecation check
jobs:
unit-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- run: npm ci
- run: npm test -- --coverage
# Unit tests use mocked groq-sdk -- no API key needed
integration-tests:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request' # Only on push to main
env:
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- run: npm ci
- name: Run Groq integration tests
run: GROQ_INTEGRATION=1 npx vitest tests/groq.integration.ts --reporter=verbose
timeout-minutes: 2
model-check:
runs-on: ubuntu-latest
env:
GROQ_API_KEY: ${{ secrets.GROQ_API_KEY }}
steps:
- uses: actions/checkout@v4
- name: Check for deprecated models
run: |
set -euo pipefail
# Get current models from Groq API
MODELS=$(curl -sf https://api.groq.com/openai/v1/models \
-H "Authorization: Bearer $GROQ_API_KEY" | jq -r '.data[].id')
# Check our code references valid models
USED=$(grep -roh "model.*['\"].*['\"]" src/ --include="*.ts" | \
grep -oP "(?<=['\"])[\w./-]+(?=['\"])" | sort -u)
echo "=== Models in our code ==="
echo "$USED"
echo ""
echo "=== Available on Groq ==="
echo "$MODELS"
# Flag any model in our code that's not in the API response
MISSING=""
while IFS= read -r model; do
if ! echo "$MODELS" | grep -qF "$model"; then
MISSING="$MISSING\n - $model"
fi
done <<< "$USED"
if [ -n "$MISSING" ]; then
echo "WARNING: These models in code are not available on Groq:$MISSING"
exit 1
fi
echo "All models valid."
Step 2: Configure Secrets
# Store Groq API key as GitHub secret
gh secret set GROQ_API_KEY --body "gsk_your_ci_key_here"
# Use a separate key for CI (easier to rotate, track usage)