Install
$ agentstack add skill-nexadevapp-nexa-claude-skills-marketplace-setup-playwright-ci ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Playwright CI
Instructions
Generate a GitHub Actions workflow that runs the project's Playwright end-to-end tests: $ARGUMENTS. $ARGUMENTS may specify the branch, workflow name, or special requirements.
Nexa Rules Gate
Read and follow ${CLAUDE_PLUGIN_ROOT}/shared/readiness/NEXA_RULES_GATE.md.
Prerequisites
- The project must already have Playwright tests (use the
/playwright-testskill first if needed) - The project must have
e2e/global-setup.tswith Testcontainers (created by/playwright-test) - The project must have a
playwright.config.tsin the project root
Workflow
- Read the project context:
- Verify
playwright.config.tsexists in the project root - Verify
e2e/global-setup.tsexists (Testcontainers setup) - Read
package.jsonto determine the Node.js version and check that@playwright/testand@testcontainers/postgresqlare indevDependencies - Check for any existing GitHub Actions workflows in
.github/workflows/ - Ask the user for: workflow trigger branch (default:
main), whether to also trigger on pull requests (default: yes)
- Create the GitHub Actions workflow at
.github/workflows/playwright.ymlusing the template.
Fill in the template placeholders:
| Placeholder | Description | Default | |---|---|---| | {{NODE_VERSION}} | Node.js version from package.json engines field or .nvmrc | 22 | | {{BRANCH}} | Branch that triggers the workflow | main |
- Verify the workflow file:
- Validate YAML syntax by reading the file back
- Ensure no placeholder
{{...}}markers remain - Ensure the workflow file is under 100 lines (keep it focused)
- Output a summary with:
- What was created and where
- How the workflow triggers (push, PR, or both)
- What artifacts are uploaded on failure (traces, reports)
- Reminder: the first run may take longer due to dependency caching being cold
Reference Templates
- GitHub Actions workflow: [templates/github-actions/playwright.yml](templates/github-actions/playwright.yml)
Workflow Template Placeholders
| Placeholder | Description | Example | |---|---|---| | {{NODE_VERSION}} | Node.js major version | 22 | | {{BRANCH}} | Branch that triggers the workflow on push | main |
Design Decisions
Why Testcontainers works on GitHub Actions
GitHub Actions ubuntu-latest runners come with Docker pre-installed. Testcontainers detects the Docker daemon automatically — no Docker-in-Docker or service containers needed. The e2e/global-setup.ts starts a PostgreSQL container, runs Prisma migrations, seeds the database, and starts the Next.js dev server — exactly the same as local development.
Why not use Playwright's Docker image
The project's global setup starts its own Next.js dev server and PostgreSQL Testcontainer. Running inside the Playwright Docker image would require Docker-in-Docker for Testcontainers. Instead, the workflow installs Chromium directly on the runner via npx playwright install --with-deps chromium, which is simpler and faster.
Parallel test files, sequential tests within files
The playwright.config.ts uses fullyParallel: false so tests within each file run sequentially (a use case journey may have ordered steps). However, separate test files (separate use cases) run in parallel via the workers setting. The CI workflow respects this — no sharding needed.
Update CLAUDE.md
After creating the workflow, append a ## Playwright CI section to the target project's CLAUDE.md so that future sessions know CI is configured.
- If
CLAUDE.mddoes not exist, create it - If a
## Playwright CIsection already exists (check for ``),
ask the user whether to overwrite or skip
- Append the following section (fill in the actual values from the setup):
~~~markdown
Playwright CI
- Workflow:
.github/workflows/playwright.yml - Triggers: push to
[branch], pull requests to[branch] - Database: PostgreSQL via Testcontainers (no Docker-in-Docker needed)
- Browser: Chromium only (installed via
npx playwright install --with-deps chromium) - Artifacts: traces and reports uploaded on failure
- Global setup:
e2e/global-setup.ts(starts Testcontainers + dev server)
~~~
Do not remove or modify any other content in CLAUDE.md.
DO NOT
- Use the Playwright Docker image as the job container — Testcontainers needs direct Docker access on the runner
- Add Firefox or WebKit browsers — the project uses Chromium only (enforced by
/playwright-test) - Add matrix strategies for multiple Node versions or OS — keep the workflow single-purpose
- Hard-code the Node.js version — read it from the project's
package.jsonor.nvmrc - Skip uploading artifacts on failure — traces and reports are essential for debugging CI failures
- Add deployment steps or notifications — this workflow is only for running E2E tests
- Overwrite an existing
.github/workflows/playwright.ymlwithout reading it first and asking the user
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: nexadevapp
- Source: nexadevapp/nexa-claude-skills-marketplace
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.