Agent skill

CI CD Integration

by petrkindlmann in petrkindlmann/qa-skills

Design CI/CD pipelines that run test suites. An agent skill from petrkindlmann/qa-skills.

MITAuto-check passedTesting & QA

Install CI CD Integration

skills CLI
$ npx skills add petrkindlmann/qa-skills --skill ci-cd-integration -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install petrkindlmann/qa-skills ci-cd-integration --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/petrkindlmann/qa-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ci-cd-integration .claude/skills/ci-cd-integration && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ci-cd-integration
GitHub stars
170
Token cost
~4.8k tokens
SKILL.md length
2,012 words
Files
3 (incl. references)
Skills in repo
45
Repo updated
First seen
Licence
MIT

At a glance

Design CI/CD pipelines that run test suites. An agent skill from petrkindlmann/qa-skills.

  • Works in 8 steps: Running all tests on every commit → No artifact storage → Retrying flaky tests without tracking them → …
  • Continuous integration
  • SKILL.md covers Discovery Questions, Core Principles, Pipeline Architecture and GitHub Actions, plus 4 more sections
  • Calls npx, actionlint and jq; needs DEPLOY_TOKEN

What it does

CI CD Integration is an agent skill from petrkindlmann/qa-skills. Design CI/CD pipelines that run test suites. Covers GitHub Actions and GitLab CI templates, parallelism and sharding, artifact management, flaky-test quarantine, test-result publishing, coverage quality gates, OIDC keyless deploy, and copy-paste workflows for Playwright, Jest, and multi-stage pipelines. Use when: "CI/CD," "GitHub Actions," "pipeline," "test in CI," "GitLab CI," "continuous integration," "test automation pipeline," "shard tests in CI." Not for: per-test flaky healing at runtime — use…

Its SKILL.md is about 4.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 3 other files, including reference files (for example `references/github-actions-templates.md` and `references/gitlab-ci-template.md`).

It sits in Testing & QA, covering CI/CD and Feature launches and release readiness. It works with GitHub Actions, GitLab, Playwright and Jest. The repository describes itself as: 50 QA and test-automation skills for Claude Code, Codex, Cursor, and any Agent Skills Standard runtime. The licence is MIT.

When your agent uses it

  • Continuous integration
  • Test automation pipeline
  • Shard tests in CI. Not for: per-test flaky healing at runtime — use test-reliability
  • Go/no-go release decisions and smoke-test checklists — use release-readiness

Example prompts

  • “CI/CD,”
  • “GitHub Actions,”
  • “pipeline,”
  • “/ci-cd-integration”

Requirements

  • Node.js
  • A credential in DEPLOY_TOKEN

Workflow steps

8 steps, taken from the step headings in SKILL.md.

  1. Running all tests on every commit
  2. No artifact storage
  3. Retrying flaky tests without tracking them
  4. CI-only failures without local reproduction
  5. Shared state between CI jobs
  6. No concurrency controls
  7. Hardcoded secrets in workflow files
  8. Ignoring job timeouts

What it can do on your machine

Read from SKILL.md and the folder at commit b3bb61b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx
    • actionlint
    • jq
    • jest
    • gh

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use npx and gh, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DEPLOY_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

CI CD Integration loads about 4.8k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 195 tokens; SKILL.md has 2,012 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~195
When it runs · the whole SKILL.md, loaded when a task matches
~4.8k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~10k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from petrkindlmann/qa-skills at commit b3bb61b, republished under its MIT licence (© petrkindlmann). 2,012 words, ~4,839 tokens.

Download SKILL.mdSave it as .claude/skills/ci-cd-integration/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
ci-cd-integration
description
Design CI/CD pipelines that run test suites. Covers GitHub Actions and GitLab CI templates, parallelism and sharding, artifact management, flaky-test quarantine, test-result publishing, coverage quality gates, OIDC keyless deploy, and copy-paste workflows for Playwright, Jest, and multi-stage pipelines. Use when: "CI/CD," "GitHub Actions," "pipeline," "test in CI," "GitLab CI," "continuous integration," "test automation pipeline," "shard tests in CI." Not for: per-test flaky healing at runtime — use test-reliability; go/no-go release decisions and smoke-test checklists — use release-readiness; test-result dashboards and trend reporting — use qa-metrics. Related: playwright-automation, qa-metrics, test-reliability, coverage-analysis, release-readiness.
license
MIT
metadata.author
kindlmann
metadata.version
2.0
metadata.category
infrastructure
<objective>
A 20-minute serial suite on every push destroys developer velocity; a green pipeline that retries flaky tests three times hides the race condition until it ships. This skill produces CI/CD pipelines that run the right tests at the right trigger, shard them across runners, store traces and reports as evidence, quarantine flaky tests instead of masking them, and gate merges on real coverage numbers. Use this skill when the question is about running tests in a pipeline, not writing them.
</objective>

Discovery Questions

Check .agents/qa-project-context.md first — if it exists, use it and skip anything already answered there (especially team_maturity and existing CI conventions). Then:

  1. Which CI platform? GitHub Actions, GitLab CI, CircleCI, Jenkins? This skill ships templates for GitHub Actions and GitLab CI.
  2. What test types need to run? Unit, integration, E2E, visual, performance? Each has different resource and timing needs.
  3. What is the current CI duration? Over 10 minutes means parallelism and sharding are mandatory, not optional.
  4. How many developers push per day? High-frequency teams need aggressive concurrency cancellation and caching.
  5. What triggers should run which tests? Not every push needs a full E2E suite — map triggers to suites before writing YAML.
Calibrate to team maturity

Set team_maturity in .agents/qa-project-context.md; pick the matching pipeline shape:

  • startup — one job: lint + unit + one E2E smoke on PR. Fast feedback over completeness.
  • growing — separate jobs for unit, integration, E2E. Parallelization, artifact uploads, result publishing, flaky quarantine.
  • established — full matrix: sharded E2E, multi-environment promotion gates, perf and security scans, deploy-gated checks, SLA-backed pipelines.

Core Principles

  1. Fast feedback: right tests at the right time. Unit tests on every push (under 2 min). E2E on PRs (under 10 min). Full suite on merge and nightly. The trigger-to-suite map below is the contract.
  2. Parallel first: shard tests across workers. A 20-minute serial suite becomes 5 minutes across 4 shards. Always worth the runner cost.
  3. Artifacts are evidence. Every run stores traces, screenshots, coverage, and HTML reports. Without artifacts, a CI failure is an undebuggable "reproduce locally" cycle.
  4. Flaky tests need quarantine, not retries. Retrying hides the problem — the test passes on retry, the report is green, the race condition persists. Move flaky tests to a non-blocking job, track them, fix the root cause.
  5. Quality gates get stricter toward production. Define what must pass at each stage; PR gate is fast and cheap, deploy gate is comprehensive.
  6. Read thresholds from config, not from bash. Let the test runner enforce coverage via its own coverageThreshold/thresholds and exit non-zero. Scraping percentages out of stdout with regex is fragile across runner versions.

Pipeline Architecture

Push to branch:   lint+types (30s) → unit (1-2m)
PR opened:        + integration (2-3m) → E2E sharded (5-8m) → merge report
Merge to main:    full E2E ∥ visual ∥ perf budget → deploy (OIDC)
Nightly (cron):   full suite + npm audit + axe a11y + flaky quarantine
What runs when
TriggerTestsMax duration
Push to branchlint, type-check, unit2 min
PR opened/updated+ integration, E2E smoke10 min
Merge to main+ full E2E, visual, perf budget15 min
Nightly schedulefull suite, security, a11y, flaky quarantine30 min
Release tagfull suite, smoke against staging20 min

GitHub Actions

For complete copy-paste workflow files (unit, sharded Playwright E2E, full pipeline, nightly, PR gate), see references/github-actions-templates.md.

Action versions (June 2026)

Pin to the current major and let Dependabot bump them. The actions/* family runs on the Node 24 runner; Node 20 is deprecated on GH-hosted runners.

ActionCurrent majorNotes
actions/checkout@v6
actions/setup-node@v6v5+ auto-caches only when packageManager is set; use cache: npm to be explicit
actions/cache@v5new cache service v2 backend
actions/upload-artifact@v7v7 can upload unzipped (archive: false)
actions/download-artifact@v7pair with upload-artifact major
dorny/test-reporter@v3v3 requires Node 24 runner; reporter keys unchanged
dorny/paths-filter@v3
marocchino/sticky-pull-request-comment@v3
slackapi/slack-github-action@v2floating major; see notification note before adopting v3

For supply-chain-sensitive pipelines, pin third-party actions (dorny, marocchino, slackapi, knapsack) to a full-length commit SHA with a version comment, and let Dependabot update the SHA: uses: dorny/test-reporter@<40-char-sha> # v3.0.0. First-party actions/* are lower risk; tags are acceptable there.

Key concepts

Concurrency groups cancel wasted runs when a branch gets multiple pushes:

yaml
concurrency:
  group: tests-${{ github.ref }}
  cancel-in-progress: true

Matrix sharding across runners:

yaml
strategy:
  fail-fast: false
  matrix:
    shard: [1, 2, 3, 4]
steps:
  - run: npx playwright test --shard=${{ matrix.shard }}/4

Caching browsers so they aren't re-downloaded every run:

yaml
- uses: actions/setup-node@v6
  with: { node-version: 22, cache: npm }

- name: Cache Playwright browsers
  id: playwright-cache
  uses: actions/cache@v5
  with:
    path: ~/.cache/ms-playwright
    key: playwright-${{ runner.os }}-${{ hashFiles('package-lock.json') }}

- name: Install Playwright browsers
  if: steps.playwright-cache.outputs.cache-hit != 'true'
  run: npx playwright install --with-deps chromium

Artifacts for reports and traces, and merging sharded reports into one HTML report — see references/github-actions-templates.md (E2E workflow). The merge job uses actions/download-artifact@v7 with pattern: test-results-* then npx playwright merge-reports --reporter=html.

Smarter sharding at scale

Past 10–15 shards, naïve hash-based splitting wastes runner time on uneven shards. Use a timing-aware balancer:

  • knapsack-pro — timing-data based, supports Playwright/Jest/Cypress/RSpec; distributes by historical duration.
  • CloudBees Smart Tests (formerly Launchable) — ML prioritization + Test Impact Analysis; runs only the tests likely to fail for the diff.
  • Datadog Test Optimization — TIA + flake management; shard-balancing by historical time.
  • Trunk Flaky Tests — flake-aware quarantine + retry budgeting.

Before reaching for a paid balancer: Playwright's --shard already distributes by file and balances on duration from prior runs. To inspect or feed custom timing data, dump it yourself — npx playwright test --reporter=json | jq '[.suites[].specs[] | {file: .file, duration: .tests[].results[].duration}]'. For Jest, jest-slow-test-reporter surfaces the slowest specs so you can split or fix them.

For self-hosted runners on Kubernetes, use Actions Runner Controller (arc-runner-set / gha-runner-scale-set) — Helm-installed, auto-scales runner pods per workflow. Replaces the deprecated runner-deployment CRD.

Required status checks

Protect main in Settings → Branches → Branch protection rules: enable "Require status checks to pass before merging," add lint, unit-tests, and e2e (all shards) as required checks, and enable "Require branches to be up to date."


GitLab CI

For the full pipeline, see references/gitlab-ci-template.md. Key points:

  • Stages [validate, test, e2e, deploy]; node:22-alpine for lint/unit, mcr.microsoft.com/playwright:v1.60.0-noble for E2E (keep this pinned to your installed @playwright/test minor).
  • Parallel sharding: parallel: 4 exposes CI_NODE_INDEX/CI_NODE_TOTAL; run npx playwright test --shard=$CI_NODE_INDEX/$CI_NODE_TOTAL.
  • Coverage: emit a cobertura coverage_report artifact and a junit report; GitLab reads the percentage and test results from those. The legacy coverage: stdout regex is a fragile fallback across Jest versions — prefer the cobertura report.

Advanced Patterns

Test result publishing to PR comments
yaml
- name: Publish test results
  uses: dorny/test-reporter@v3
  if: ${{ !cancelled() }}
  with:
    name: Test Results
    path: test-results/junit.xml
    reporter: jest-junit  # use java-junit for a Playwright JUnit report

For the sticky coverage PR comment (marocchino/sticky-pull-request-comment@v3), see references/github-actions-templates.md (PR Quality Gate).

Conditional test execution

Only test what changed. Use dorny/paths-filter@v3 to set outputs, then gate steps on them — see references/github-actions-templates.md (Conditional execution).

Flaky test quarantine

Separate flaky tests into a non-blocking job so they run in CI but don't block merges:

yaml
e2e-stable:        # required for merge
  steps:
    - run: npx playwright test --grep-invert @flaky

e2e-quarantine:    # non-blocking
  continue-on-error: true
  steps:
    - run: npx playwright test --grep @flaky
    - if: failure()
      run: echo "::warning::Quarantined tests failed. Review and fix or remove."

Tag flaky tests at the source so the grep splits them:

typescript
test('sometimes fails due to race condition @flaky', async ({ page }) => {
  // runs in CI but doesn't block merges
});

If a quarantined test passes 10 consecutive runs, remove the @flaky tag. For runtime self-healing of a single flaky test (selector recovery, auto-retry policy), use test-reliability.

Cache strategies
LayerPathCache key
Node modules(handled by setup-node cache: npm)automatic
Playwright browsers~/.cache/ms-playwrightpw-{os}-{hash(package-lock.json)}
Build cache (Next.js).next/cachenextjs-{os}-{hash(lockfile)}-{hash(src)}
Test fixturese2e/fixtures/.cachetest-data-{hash(seed.sql)}

Use actions/cache@v5 for layers 2–4; add restore-keys on build caches for partial matches.

OIDC keyless deploy

Don't store a long-lived DEPLOY_TOKEN. Use GitHub Actions OIDC to assume a cloud role for short-lived credentials — nothing static to leak or rotate:

yaml
deploy:
  permissions:
    id-token: write   # request the OIDC JWT
    contents: read
  steps:
    - uses: aws-actions/configure-aws-credentials@v6
      with:
        role-to-assume: arn:aws:iam::123456789012:role/gha-deploy
        aws-region: eu-central-1
    - run: ./deploy.sh production   # uses short-lived STS creds, no static secret

The IAM role's trust policy pins the sub claim to your repo and branch. GCP (google-github-actions/auth) and Azure (azure/login) have equivalent OIDC flows.

Slack/Teams notification on failure

Use slackapi/slack-github-action@v2 with webhook-type: incoming-webhook, gated on if: failure() && github.ref == 'refs/heads/main' so only main-branch failures notify. Before moving to @v3, note v3 changed payload handling for workflow-trigger webhooks (no longer flattened/stringified) — verify your payload against the v3 docs first. Full example in references/github-actions-templates.md (Nightly Full Suite).


Show full SKILL.md (829 more words)Show less

Quality Gates

GateWhenRequired checksBlocking?
PR GatePR opened/updatedlint, type-check, unit, coverage thresholdYes
Merge GateBefore merge to main+ E2E smoke suiteYes
Deploy GateBefore production deploy+ full E2E, visual, perf budgetYes
Nightly GateScheduled 2am dailyfull suite, npm audit, axe a11yAlert only
PR Gate (under 3 minutes)

Enforce the coverage floor in the test runner's config, not in bash. In jest.config.js (or vitest.config.ts coverage.thresholds):

javascript
coverageThreshold: { global: { lines: 80, statements: 80, branches: 70 } }

Then jest --coverage exits non-zero when coverage drops, so the job fails with no extra script. If you must read the number in CI (e.g. to print it), have Jest emit json-summary and read the file — there is no coverage-summary CLI:

yaml
- run: npm test -- --ci --coverage   # exits 1 if below coverageThreshold
- name: Print coverage (optional)
  run: |
    PCT=$(jq '.total.lines.pct' coverage/coverage-summary.json)
    echo "Line coverage: ${PCT}%"

(json-summary reporter writes coverage/coverage-summary.json. For nyc/c8 projects, nyc report --reporter=text-summary. The standalone istanbul CLI is deprecated — don't use istanbul report.)

Merge Gate (under 10 minutes)

PR Gate + E2E smoke. Configure as required status checks in branch protection.

Deploy Gate (under 15 minutes)

Needs [unit-tests, e2e-tests, visual-tests], then a perf budget check (npx lhci autorun / lhci assert --config=lighthouserc.json) before the OIDC deploy step above.

Nightly Gate (up to 30 minutes)

Full E2E across all browsers, security scan, a11y audit, flaky quarantine. Wire the security and a11y steps as real jobs, not just prose:

yaml
- run: npm audit --audit-level=high   # fails on high/critical advisories
- run: npx playwright test --grep @a11y   # specs that call @axe-core/playwright

Where the @a11y-tagged specs use @axe-core/playwright:

typescript
import AxeBuilder from '@axe-core/playwright';
test('home page has no a11y violations @a11y', async ({ page }) => {
  await page.goto('/');
  const results = await new AxeBuilder({ page }).analyze();
  expect(results.violations).toEqual([]);
});

Results go to Slack, not as blocking checks.


Anti-Patterns

1. Running all tests on every commit

A 20-minute full suite on every push destroys velocity. Use the trigger-to-suite map: fast tests on push, comprehensive on PR and merge.

2. No artifact storage

Without traces, screenshots, and logs, every CI failure becomes a "reproduce locally" cycle that wastes hours. Upload artifacts on if: ${{ !cancelled() }}.

3. Retrying flaky tests without tracking them

retries: 3 hides flakiness — the report is green but the race condition persists. Quarantine, track, fix the root cause.

4. CI-only failures without local reproduction

If a test only fails in CI, document why (timezone, missing env var, screen resolution) and add a script that replicates CI locally with the same Playwright image you run in CI — don't pin a stale image. See references/github-actions-templates.md (Local repro).

5. Shared state between CI jobs

Jobs that read files from sibling jobs without artifacts or needs. Each job starts fresh; pass data via upload-artifact/download-artifact.

6. No concurrency controls

Multiple runs for the same branch waste runners. Always use a concurrency group with cancel-in-progress: true.

7. Hardcoded secrets in workflow files

Never put tokens, passwords, or keys in YAML. Use repo secrets (${{ secrets.X }}) or GitLab CI/CD variables — and prefer OIDC keyless auth over any long-lived deploy token.

8. Ignoring job timeouts

A stuck test can hold a runner for hours. Set timeout-minutes on every job and actionTimeout/navigationTimeout in the Playwright config.


Verification

Prove the pipeline before relying on it. Smallest check first:

  1. Lint the workflow syntax — actionlint .github/workflows/*.yml catches expression, needs, and shell-quoting errors before they fail at runtime. Add a yamllint .github/workflows/ pass for indentation. Run actionlint as a job too.
  2. Dry-run a job locally — act -j unit-tests runs the job in a container so you can iterate without pushing.
  3. Confirm required checks appear — push to a throwaway branch, open a draft PR, and verify the expected check runs (lint, unit-tests, e2e) show up and that the coverage gate fails when you drop coverage below the threshold.
  4. Verify artifacts — download the run's artifacts from the Actions UI (or gh run download <id>) and confirm playwright-report/ and traces are present.

Done When

  • A trigger map exists: push runs lint+unit only; the PR workflow gates E2E behind if: github.event_name == 'pull_request' (verify the YAML, not "integration runs somewhere").
  • actionlint .github/workflows/*.yml exits 0.
  • A non-blocking quarantine job runs --grep @flaky with continue-on-error: true; the stable job runs --grep-invert @flaky and is in the required checks list.
  • Test artifacts (reports, screenshots, traces) upload on if: ${{ !cancelled() }} with an explicit retention-days/expire_in.
  • Concurrency groups with cancel-in-progress: true are set on the PR/test workflows.
  • Coverage is enforced by the runner's coverageThreshold/thresholds (job exits non-zero below the floor) — no coverage-summary CLI scrape.
  • Branch protection lists lint, unit-tests, and e2e as required status checks.
  • No long-lived deploy token in YAML — deploy uses OIDC (id-token: write + cloud role) or, at minimum, a secrets-store reference.

  • playwright-automation — writing the E2E tests, Page Object Model, and the playwright.config.ts whose sharding/timeouts this pipeline drives.
  • test-reliability — runtime self-healing of one flaky test (selector recovery, retry policy); go there to fix a flaky test, come here to quarantine it in CI.
  • qa-metrics — turning the JUnit/coverage artifacts this pipeline produces into dashboards and flakiness trends.
  • release-readiness — the human go/no-go decision and release checklist that consumes these gate results; this skill builds the gates, that one decides on them.
  • coverage-analysis — finding the coverage gaps and setting the threshold this skill's PR gate enforces.

Reference Files (in references/)

  • github-actions-templates.md — copy-paste unit, sharded Playwright E2E (+ report merge), full pipeline, nightly (Slack + audit + axe), and PR quality-gate workflows, plus conditional execution and local-repro snippets.
  • gitlab-ci-template.md — full .gitlab-ci.yml with parallel sharding, cobertura coverage, and JUnit MR reporting.

© petrkindlmann, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files (references) in skills/ci-cd-integration of petrkindlmann/qa-skills.

  • SKILL.md
  • references/github-actions-templates.md
  • references/gitlab-ci-template.md

Open the folder on GitHubat commit b3bb61b

Compare with similar skills

CI CD Integration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

CI CD Integration compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
CI CD Integration this skillpetrkindlmann/qa-skills170—~4.8kAutomated safety check: PassMIT
Testing Test Automation Engineerchendongqi/OPB-Skills126—~3.1kAutomated safety check: PassNone
Playwright CIzebbern/claude-code-guide4.7k2 repos~675Automated safety check: PassMIT
Fingerprint CI Gateliarjsdev/liarjs-skills41 repos~986Automated safety check: NotesMIT
Dokan Run Test Suitegetdokan/dokan288—~4.7kAutomated safety check: NotesNone
Playwright CI CachingAaronontheweb/dotnet-skills1.2k1 repos~1.7kAutomated safety check: PassMIT

Similar skills

  • 自动化测试助手 - 专业的测试自动化设计与实现专家。适用场景: (1) 自动化测试框架选型与搭建(Selenium/Cypress/Playwright/Appium) (2) 自动化测试脚本编写(Web/API/Mobile) (3) 测试数据管理与Mock设计 (4) CI/CD测试集成(Jenkins/GitLab CI/GitHub Actions) (5) Page…

    126 GitHub stars~3.1k tokensUpdated 8 mo ago
    Testing & QAAuto-check passed
  • Playwright CI

    zebbern/claude-code-guide

    Production-ready CI/CD configurations for Playwright — GitHub Actions, GitLab CI, CircleCI, Azure DevOps, Jenkins, Docker, parallel sharding, reporting, code coverage, and global setup/teardown.

    4.7k GitHub starsUsed in 2 repos~675 tokens
    DevOps & CloudAuto-check passed
  • Fingerprint CI Gate

    liarjsdev/liarjs-skills

    Gate a build on browser fingerprint regressions with liarjs - save a baseline scan as JSON, diff later runs against it, and fail the job when the consistency score falls below a floor.

    4 GitHub starsUsed in 1 repo~986 tokens
    DevOps & CloudAuto-check: notes
  • Dokan Run Test Suite

    getdokan/dokan

    Execute the Dokan Playwright test suite (E2E + API), locally or via GitHub Actions.

    288 GitHub stars~4.7k tokensUpdated yesterday
    Testing & QAAuto-check: notes
  • Playwright CI Caching

    Aaronontheweb/dotnet-skills

    Cache Playwright browser binaries in CI/CD pipelines (GitHub Actions, Azure DevOps) to avoid 1-2 minute download overhead on every build.

    1.2k GitHub starsUsed in 1 repo~1.7k tokens
    Testing & QAAuto-check passed
  • Actions CI Tuning

    mizchi/skills

    A skill your agent uses when auditing or improving GitHub Actions workflows for a project.

    360 GitHub stars~2.6k tokensUpdated 8 days ago
    Testing & QAAuto-check passed

More from petrkindlmann/qa-skills

All 45 skills in this repo
  • Accessibility Testing

    petrkindlmann/qa-skills

    Test for WCAG 2.2 AA compliance with axe-core + Playwright, keyboard navigation audits, screen reader testing, ARIA pattern validation, and legal compliance mapping (ADA, EAA, Section 508).

    170 GitHub stars~4.5k tokensUpdated 4 mo ago
    Auto-check passed
  • Agentic Browser Testing

    petrkindlmann/qa-skills

    Goal-driven E2E testing where a browser agent (Playwright MCP / computer-use) reads a natural-language goal and explores the app via the accessibility tree to assert outcomes — no pre-written script.

    170 GitHub stars~4.5k tokensUpdated 4 mo ago
    Auto-check passed
  • AI Test Generation

    petrkindlmann/qa-skills

    Use AI to write NEW test code from specs, PRDs, user stories, code diffs, bug reports, or OpenAPI specs.

    170 GitHub stars~4.8k tokensUpdated 4 mo ago
    Auto-check passed
  • API Testing

    petrkindlmann/qa-skills

    Test REST and GraphQL APIs with Playwright APIRequestContext, Supertest, or standalone HTTP clients.

    170 GitHub stars~2.7k tokensUpdated 4 mo ago
    Auto-check passed
  • Compliance Testing

    petrkindlmann/qa-skills

    Test for regulatory compliance: GDPR/CMP consent verification, Google Consent Mode v2, Global Privacy Control (GPC), CCPA/US state opt-out, EU AI Act Article 50 transparency, Better Ads Standards…

    170 GitHub stars~4.6k tokensUpdated 4 mo ago
    Auto-check passed
  • Contract Testing

    petrkindlmann/qa-skills

    Implement consumer-driven contract testing with Pact-JS (v16).

    170 GitHub stars~4.1k tokensUpdated 4 mo ago
    Auto-check passed

Questions about CI CD Integration

What does CI CD Integration do?

Design CI/CD pipelines that run test suites. An agent skill from petrkindlmann/qa-skills. CI CD Integration is an agent skill from petrkindlmann/qa-skills. Design CI/CD pipelines that run test suites.

When should I use CI CD Integration?

CI CD Integration fits situations like: continuous integration; test automation pipeline; shard tests in CI. Not for: per-test flaky healing at runtime — use test-reliability; go/no-go release decisions and smoke-test checklists — use release-readiness.

How do I install CI CD Integration in Claude Code?

Run `npx skills add petrkindlmann/qa-skills --skill ci-cd-integration -a claude-code`. Or copy the skill folder (skills/ci-cd-integration in petrkindlmann/qa-skills) into .claude/skills/ci-cd-integration in your project. Claude Code loads it when a task matches its description.

How do I install CI CD Integration in Codex?

Run `npx skills add petrkindlmann/qa-skills --skill ci-cd-integration -a codex`. Or copy the skill folder (skills/ci-cd-integration in petrkindlmann/qa-skills) into .agents/skills/ci-cd-integration in your project. Codex loads it when a task matches its description.

Can I use CI CD Integration in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add petrkindlmann/qa-skills --skill ci-cd-integration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ci-cd-integration, .gemini/skills/ci-cd-integration, .github/skills/ci-cd-integration and .opencode/skills/ci-cd-integration in your project.

What does CI CD Integration need to run?

Going by SKILL.md and its folder, CI CD Integration needs the command-line tools its instructions call (npx, actionlint, jq, jest and gh) and credentials named DEPLOY_TOKEN. Our summary lists: Node.js; A credential in DEPLOY_TOKEN.

Does CI CD Integration access the network?

SKILL.md contains no URLs. Its commands use npx and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is CI CD Integration safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does CI CD Integration use?

CI CD Integration is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does CI CD Integration use?

About 4.8k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.2k tokens, read only when the agent opens those files.

What are the alternatives to CI CD Integration?

Skills that share tags, products or a category with CI CD Integration: Testing Test Automation Engineer (chendongqi/OPB-Skills, 126 stars), Playwright CI (zebbern/claude-code-guide, 4.7k stars), Fingerprint CI Gate (liarjsdev/liarjs-skills, 4 stars) and Dokan Run Test Suite (getdokan/dokan, 288 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains CI CD Integration?

petrkindlmann (a GitHub user) maintains it in petrkindlmann/qa-skills, which has 170 GitHub stars. The repository holds 45 skills in this directory. The repository was last updated on June 10, 2026.

Source: petrkindlmann/qa-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.