playwright
Playwright with its browsers and their system libraries, ready for a project's browser tests.
Installs the Playwright CLI, downloads the browser engines you ask for, and installs the operating-system libraries those browsers need, so a project’s browser tests run on the workstation with no further setup:
devtools:
- name: nodejs
version: "24"
- name: playwright
config:
browsers: [chromium, firefox]Omit config and you get Chromium. Declare nodejs first to choose the Node the CLI
runs on; otherwise the distribution’s Node is installed for it.
config fields
| Field | Type | Default | Description |
|---|---|---|---|
browsers | array of string | ["chromium"] | The engines to install: chromium, firefox, webkit. An empty or unrecognized list falls back to chromium. |
Version behavior
version | Result |
|---|---|
| omitted | the latest published Playwright |
1.48.0 | that exact npm version |
Where the browsers live
Engines are installed once, as root, into a shared cache at /opt/ms-playwright, made
world-readable, and every login shell gets PLAYWRIGHT_BROWSERS_PATH pointing at it. So
the workstation user’s test runs find the same browsers the install produced, which a
per-user npx playwright install cannot give you.
On Debian and Ubuntu the browsers’ system libraries are installed too. On Alpine only the engines are installed; the dependency step is skipped.
Example
A test workstation that runs a project’s browser suite:
apiVersion: workstations.ringleader.dev/v1
kind: WorkstationConfig
metadata:
name: e2e-box
namespace: local
spec:
selector:
matchLabels:
role: e2e
identity:
user: dev
shell: /bin/bash
packages:
- git
devtools:
- name: nodejs
version: "24"
- name: playwright
config:
browsers: [chromium, firefox]
sources:
- name: app
git:
url: https://github.com/acme/app.git
ref: main
path: /home/dev/src/app
scripts:
- name: install-deps
phase: user
runPolicy: onChange
content: |
set -e
cd ~/src/app && npm ciNotes
- The first setup run is slow: browser downloads take minutes. Keep
playwrightoff workstations that do not need it. - Changing
browsersre-runs the recipe, butplaywright installskips engines that are already present, so addingwebkitto an existing workstation downloads only WebKit.