Sitemap

Integrating Playwright with CI/CD Pipelines: GitHub Actions, GitLab CI, and Jenkins

4 min readMay 30, 2025

--

Press enter or click to view image in full size

In our previous blog post, “Playwright Testing Framework from Scratch: Folder Structure, Config, and Best Practices”, we explored how to lay a strong foundation for Playwright automation. We walked through the recommended folder structure, configuration strategies, and reusable coding patterns that form the backbone of scalable test automation. Now, we move a step ahead to ensure those well-structured tests become a seamless part of your Continuous Integration and Continuous Delivery (CI/CD) pipelines.

Automating test execution at every code change is the cornerstone of modern software development.

In this detailed guide, we will learn how to integrate Playwright with three popular CI/CD tools: GitHub Actions, GitLab CI, and Jenkins. We’ll focus on automating end-to-end testing using Playwright in each of these tools, referencing official documentation wherever relevant to ensure technical accuracy.

Why Integrate Playwright with CI/CD?

Before diving into specific integrations, let’s understand why this matters:

  • Fast Feedback: Catch regressions early with test automation triggered by every commit or pull request.
  • Reliable Releases: Ensure that only code passing all tests moves forward to production.
  • Scalability: Easily scale your testing across environments and teams.
  • Standardization: Enforce consistent testing workflows for better collaboration and reduced errors.

Now, let’s explore CI/CD integrations for Playwright, starting with GitHub Actions.

GitHub Actions + Playwright

GitHub Actions is a native CI/CD solution offered by GitHub. It enables automation of workflows such as building, testing, and deploying your applications right from your GitHub repository.

Prerequisites:

  • A GitHub repository with a Node.js + Playwright setup
  • Structured Playwright test suites and configuration files in place (as per our previous blog)

Step-by-Step Setup:

1.Create Workflow Directory

  • Navigate to .github/workflows/ in your project root.
  • Create a new file: playwright.yml

2. Add the Workflow Configuration

name: Playwright Tests

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

jobs:
test:
runs-on: ubuntu-latest

steps:
— name: Checkout repository
uses: actions/checkout@v3

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: ‘18’

- name: Install dependencies
run: npm ci

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

-name: Run tests
run: npx playwright test

3. Understand What’s Happening:

  • GitHub triggers the workflow on every push or pull request.
  • The VM sets up Node.js, installs all NPM dependencies, installs required Playwright browsers, and finally runs the Playwright test suite.

4. Customizations:

  • Add --project flags to run selective projects.
  • Integrate with Allure or HTML reports using playwright.config.ts.

GitLab CI + Playwright

If you’re using GitLab as your source control and DevOps tool, GitLab CI/CD provides a powerful YAML-based configuration system for building pipelines.

Prerequisites:

  • GitLab repository with Playwright setup
  • .gitlab-ci.yml file in project root

Step-by-Step Setup:

  1. Create .gitlab-ci.yml

stages:
— test

playwright-tests:
stage: test
image: mcr.microsoft.com/playwright:v1.43.1-focal
script:
— npm ci
— npx playwright install — with-deps
— npx playwright test
artifacts:
when: always
paths:
— playwright-report
expire_in: 1 week

Highlights:

  • Uses Microsoft’s official Playwright Docker image, which comes pre-installed with necessary browsers.
  • Stores test reports as artifacts for later inspection.

Advanced Tips

  • Configure cache section for faster builds.
  • Use GitLab runners with Docker-in-Docker setup for browser parallelism

Jenkins + Playwright

Jenkins offers flexibility through pipeline-as-code and plugins. While setup requires more configuration compared to GitHub or GitLab, it offers deeper control over your CI environment.

Prerequisites:

  • Jenkins installed and configured
  • Node.js and Playwright installed on agents
  • Jenkinsfile in your project root

Jenkinsfile Example:

pipeline {
agent any

environment {
CI = ‘true’
}

stages {
stage(‘Checkout’) {
steps {
git ‘https://github.com/your-org/your-repo.git'
}
}

stage(‘Install dependencies’) {
steps {
sh ‘npm ci’
sh ‘npx playwright install — with-deps’
}
}

stage(‘Run Playwright tests’) {
steps {
sh ‘npx playwright test’
}
}

stage(‘Archive test reports’) {
steps {
archiveArtifacts artifacts: ‘playwright-report/**/*.*’, fingerprint: true
}
}
}
}

Advanced Jenkins Integration Tips:

  • Add HTML Report plugin to visualize test results.
  • Use Docker agents or node labels for running browser tests in isolated environments.
  • Schedule nightly builds for regression testing.

Important Read: Integrating Playwright with Jenkins: A Step-by-Step Guide

CI/CD Best Practices for Playwright

  • Use Headless Mode: Ideal for CI environments, ensures minimal resource consumption.
  • Parallel Execution: Take advantage of Playwright’s project parallelism to speed up test runs.
  • Retry Mechanism: Configure retries in playwright.config.ts to rerun flaky tests.
  • Report Generation: Enable rich HTML or Allure reports for in-depth test result analysis.
  • Use Environment Variables: Separate test data, URLs, or secrets across dev, staging, and prod.
  • Fail Fast Strategy: Use --max-failures=1 in critical smoke suites to halt on first failure.

Wrapping Up

Integrating Playwright with your CI/CD pipeline transforms your manual testing workflow into a scalable, reliable, and efficient test automation lifecycle. Whether you’re using GitHub Actions, GitLab CI, or Jenkins, this guide has provided you with the foundational setup and best practices to ensure success.

🚀 Need help setting up or scaling Playwright in your organization? Reach out to Testrig Technologies for expert QA solutions.

--

--

Testrig Technologies
Testrig Technologies

Written by Testrig Technologies

As an independent software testing company, we provide modern quality assurance and software testing services to global clients.