PlatformPricingDocsBlogSign In
Sign InGet Started Free
PlatformPricingDocsBlogSign In

Stay up to date

Get the latest on the Euriqa platform, product updates, and test automation best practices.

Platform

  • Platform
  • Services
  • Pricing
  • Docs

Developers

  • Getting Started
  • API Reference
  • SDK
  • CI/CD Integration

Company

  • About
  • Blog
  • Contact
  • Security

Legal

  • Privacy Policy
  • Terms of Service
© 2026 Euriqa. All rights reserved.
  • Getting Started

    • Introduction
    • Quickstart
    • Reporter Configuration
    • CI/CD Setup
  • Platform Features

    • Test Orchestration
    • AI Features
    • Flakiness Detection
    • Artifacts & Uploads
    • Webhooks
    • Teams & Projects
  • API Reference

    • Authentication
    • API Reference
    • Data Model
  • Security

    • Security Overview
  • Playwright

    • Playwright Docs
    • Playwright API
    • Playwright Test Reporters

CI/CD Setup

Integrate Euriqa with your CI/CD pipeline. Native GitHub Actions and GitLab CI integration with zero-config detection. More providers coming soon.

Overview

Euriqa integrates natively with GitHub Actions and GitLab CI. Support for additional providers is coming soon. In most cases, you only need to set two environment variables — EURIQA_API_KEY and EURIQA_PROJECT_ID — and the reporter handles everything else: detecting the CI provider, capturing build metadata, resolving git information, and uploading artifacts.

Make sure you have already installed the reporter and configured your playwright.config.ts before setting up CI/CD. See the Reporter Configuration page for details.

Supported CI Providers

Euriqa provides full native integration with GitHub Actions and GitLab CI, including auto-detection, metadata capture, and sharding support. For other CI systems, basic support is available via the generic CI environment variable.

CI ProviderSupport LevelDetection Variable
GitHub ActionsFull native integrationGITHUB_ACTIONS
GitLab CIFull native integrationGITLAB_CI
Other CI systemsBasic (via env vars)CI

When running in CI, Euriqa automatically captures the CI provider, build ID, build URL, branch, commit SHA, commit message, author, hostname, OS, and Node.js version.

GitHub Actions

Add your Euriqa credentials as repository secrets, then reference them in your workflow file. The reporter auto-detects GitHub Actions via the GITHUB_ACTIONS environment variable and captures branch, commit, and build metadata automatically.

.github/workflows/tests.ymlyaml
name: Playwright Tests
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm ci

      - name: Install Playwright browsers
        run: npx playwright install --with-deps

      - name: Run Playwright tests
        run: npx playwright test
        env:
          EURIQA_API_KEY: ${{ secrets.EURIQA_API_KEY }}
          EURIQA_PROJECT_ID: ${{ secrets.EURIQA_PROJECT_ID }}

      - name: Upload Playwright report
        uses: actions/upload-artifact@v4
        if: always()
        with:
          name: playwright-report
          path: playwright-report/
          retention-days: 30

Auto-detected metadata from GitHub Actions:

  • Branch name from GITHUB_REF_NAME or GITHUB_HEAD_REF
  • Commit SHA from GITHUB_SHA
  • Build URL from GITHUB_SERVER_URL, GITHUB_REPOSITORY, and GITHUB_RUN_ID
  • Build ID from GITHUB_RUN_ID

GitLab CI

Add your Euriqa credentials as CI/CD variables in your GitLab project settings (Settings > CI/CD > Variables), then reference them in your pipeline configuration.

.gitlab-ci.ymlyaml
stages:
  - test

playwright-tests:
  stage: test
  image: mcr.microsoft.com/playwright:v1.48.0-jammy
  script:
    - npm ci
    - npx playwright test
  variables:
    EURIQA_API_KEY: $EURIQA_API_KEY
    EURIQA_PROJECT_ID: $EURIQA_PROJECT_ID
  artifacts:
    when: always
    paths:
      - playwright-report/
    expire_in: 30 days
  rules:
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH

Auto-detected metadata from GitLab CI: branch from CI_COMMIT_BRANCH, commit SHA from CI_COMMIT_SHA, build URL from CI_PIPELINE_URL, and build ID from CI_PIPELINE_ID.

Other CI Providers

Euriqa works with any CI system that sets the CI environment variable. Just set two env vars and run your tests:

Generic CI setupbash
# Set the required environment variables
export EURIQA_API_KEY=your-api-key
export EURIQA_PROJECT_ID=your-project-id

# Run your tests as usual
npx playwright test

Basic metadata is captured automatically via git commands: branch, commit SHA, commit message, and author. If your CI provider does not set a standard CI detection variable, you can explicitly set one:

Force CI detectionbash
export CI=true
export EURIQA_API_KEY=your-api-key
export EURIQA_PROJECT_ID=your-project-id
npx playwright test

You can also provide additional metadata via environment variables to enrich your test reports:

  • EURIQA_BRANCHstring
    Override the branch name if auto-detection does not work for your CI provider.
  • EURIQA_COMMIT_SHAstring
    Override the commit SHA.
  • EURIQA_COMMIT_MESSAGEstring
    Override the commit message.
  • EURIQA_AUTHORstring
    Override the commit author.
Full native support coming soon for: CircleCI, Jenkins, Buildkite, Azure Pipelines, Bitbucket Pipelines, and more.

Sharding

Playwright supports test sharding to distribute tests across multiple CI machines for faster execution. Euriqa automatically detects shard information and merges results from all shards into a single run in the dashboard.

GitHub Actions with Sharding

.github/workflows/tests.ymlyaml
name: Playwright Tests (Sharded)
on:
  push:
    branches: [main]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        shardIndex: [1, 2, 3, 4]
        shardTotal: [4]
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install dependencies
        run: npm ci

      - name: Install Playwright browsers
        run: npx playwright install --with-deps

      - name: Run Playwright tests (shard ${{ matrix.shardIndex }}/${{ matrix.shardTotal }})
        run: npx playwright test --shard=${{ matrix.shardIndex }}/${{ matrix.shardTotal }}
        env:
          EURIQA_API_KEY: ${{ secrets.EURIQA_API_KEY }}
          EURIQA_PROJECT_ID: ${{ secrets.EURIQA_PROJECT_ID }}

Euriqa detects the --shard flag from the Playwright configuration and associates all shard results with the same run. The dashboard displays the merged results with per-shard breakdowns available.

Shard Configuration in Playwright

You can also configure sharding directly in your playwright.config.ts:

playwright.config.tstypescript
import { defineConfig } from '@playwright/test';

export default defineConfig({
  // Shard configuration (usually set via CLI --shard flag)
  shard: process.env.SHARD
    ? {
        current: parseInt(process.env.SHARD.split('/')[0]),
        total: parseInt(process.env.SHARD.split('/')[1]),
      }
    : undefined,

  reporter: [
    ['@euriqa/euriqa-playwright', {
      apiKey: process.env.EURIQA_API_KEY,
      projectId: process.env.EURIQA_PROJECT_ID,
    }],
  ],
});
Shard information (current index and total count) is automatically captured by the reporter and included in the run metadata. No additional configuration is needed.

Custom Build Metadata

You can override any auto-detected metadata using environment variables or reporter configuration. This is useful when the auto-detected values are incorrect or when you want to add additional context.

Override via Environment Variables

Environment variable overridesbash
# Override branch name
export EURIQA_BRANCH=feature/custom-branch

# Override commit SHA
export EURIQA_COMMIT_SHA=abc123def456

# Override commit message
export EURIQA_COMMIT_MESSAGE="feat: implement new login flow"

# Override author
export EURIQA_AUTHOR="Jane Doe"

# Custom run title
export EURIQA_RUN_TITLE="Nightly regression suite"

npx playwright test

Override via Reporter Config

playwright.config.tstypescript
reporter: [
  ['@euriqa/euriqa-playwright', {
    apiKey: process.env.EURIQA_API_KEY,
    projectId: process.env.EURIQA_PROJECT_ID,
    runTitle: 'Nightly Regression - ' + new Date().toISOString().split('T')[0],
  }],
]

Precedence order: Environment variables take the highest precedence, followed by reporter config values, followed by CI-specific auto-detected values, followed by Git command auto-detection.

The runTitle option is useful for distinguishing between different types of test runs (e.g., nightly regressions, smoke tests, full suites) in the Euriqa dashboard.

Troubleshooting

If test results are not appearing in the Euriqa dashboard, check the following:

  • Verify credentials — Ensure EURIQA_API_KEY and EURIQA_PROJECT_ID are set correctly in your CI environment
  • Check CI detection — Enable debug mode (EURIQA_DEBUG=true) to see if the reporter detects your CI environment
  • Network access — Ensure your CI machines can reach https://app.euriqa.dev. If behind a proxy, configure the proxy option
  • Local runs — If running locally, make sure allowLocalRuns: true is set in your reporter config (paid feature)
  • Reporter version — Ensure you are using the latest version of @euriqa/euriqa-playwright
Debug CI issuesbash
# Run with debug logging to see detailed reporter output
EURIQA_DEBUG=true npx playwright test