Run in CI (GitHub Actions)
Setting up Github Actions to run Testronaut! Perfect for catching issues early on pull requests or deployments.
The below example covers the standard setup, test run, and reporting capturing steps:
name: Run Testronaut Tests
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
workflow_dispatch:
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Install dependencies
run: npm ci
# Compute the Playwright version from your installed dependency
- name: Get Playwright version
id: pw
run: |
version=$(node -p 'require("playwright/package.json").version')
echo "version=$version" >> "$GITHUB_OUTPUT"
# Cache the Playwright browsers folder
- name: Cache Playwright browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ steps.pw.outputs.version }}
restore-keys: |
${{ runner.os }}-playwright-
# Install system deps + ensure browsers present (will be a no-op if cache hit)
- name: Install Playwright browsers (with OS deps)
run: npx playwright install --with-deps
# Optional but often stabilizes CI chromium on GH runners
- name: Set CI flags for Chromium
run: echo "TESTRONAUT_CI_CHROMIUM=1" >> $GITHUB_ENV
- name: Run Testronaut missions
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
URL: ${{ secrets.URL }}
USERNAME: ${{ secrets.USERNAME }}
PASSWORD: ${{ secrets.PASSWORD }}
run: npx testronaut
# Login and upload steps to send reports to mission control
- name: Login to Testronaut
run: npx testronaut login --apiKey=${{ secrets.TESTRONAUT_API_KEY }}
- name: Upload Testronaut report
run: npx testronaut upload
# Optional Steps for preserving report artifacts
- name: Upload reports
if: always()
uses: actions/upload-artifact@v4
with:
name: testronaut-reports
path: missions/mission_reports/**
- name: Upload screenshots
if: always()
uses: actions/upload-artifact@v4
with:
name: testronaut-screenshots
path: missions/mission_reports/screenshots/*.png