Setting Up VigilQA with GitHub Actions
From zero to automated test runs on every pull request — in under 10 minutes.
VigilQA exposes a CLI that drops cleanly into any CI environment. GitHub Actions is the most common setup, so here's a complete walkthrough — from adding your API key as a secret to getting test results in the dashboard on every PR.
Prerequisites
- A VigilQA account (Starter or Pro)
- A knowledge base committed to your repo under
ai/knowledge_base/ - An AI service API key (Mistral or other supported provider)
- Your app running in CI (either deployed staging or a Docker service in the workflow)
Step 1 — Add your secrets
In your GitHub repo: Settings → Secrets and variables → Actions → New repository secret.
Add two secrets: VIGILQA_API_KEY (your VigilQA dashboard API key) and AI_SERVICE_API_KEY (your Mistral or other AI provider key).
Step 2 — Create the workflow file
name: VigilQA Tests
on:
pull_request:
branches: [main, develop]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.11'
- name: Install VigilQA
run: pip install vigilqa
- name: Install Playwright browsers
run: playwright install chromium
- name: Run tests
env:
VIGILQA_API_KEY: ${{ secrets.VIGILQA_API_KEY }}
AI_SERVICE_API_KEY: ${{ secrets.AI_SERVICE_API_KEY }}
APP_BASE_URL: https://staging.yourapp.com
run: |
vigilqa run \
--product myapp \
--domain web,api \
--base-url $APP_BASE_URL \
--report-to-dashboard
Step 3 — Run only changed domains (optional)
For faster CI, you can use --domain to limit which test modules run. If your PR only touches API code, skip the Web UI run:
vigilqa run --product myapp --domain api --base-url $APP_BASE_URL
Step 4 — View results in the dashboard
With --report-to-dashboard, every run is posted to the VigilQA dashboard automatically. You'll see pass/fail counts, AI failure classifications, and any approval items (locator heals, coverage gaps) waiting for review.
Failing the build on test failure
By default, vigilqa run exits with code 1 if any tests fail, which GitHub Actions will treat as a failed step and block the merge. If you want to allow failures to pass CI (run but not block), use --no-fail-on-error and handle the exit code yourself.
That's it. From the moment this workflow file lands in main, every PR runs your full AI-generated test suite and posts results to the dashboard — no test maintenance required between releases.