Stop 14 · Build Your QA PortfolioProjects · 6/7

CI/CD Integrated Test Suite

Part of the QA Testing Roadmap

In short

A test suite that runs on every push, publishes a report and blocks broken code is what real teams rely on. It proves you can test inside a delivery pipeline, not just on your laptop.

A demonstration of Phase 11's skills — a test suite that runs automatically in a CI/CD pipeline with clear reporting, showing you can operate testing within a real delivery workflow, not just locally.

The purple blob pulls a signal lever beside a track as a toy train waits at a green signal.

Think of it like this

The railway signal

A train only moves when the signal turns green, and the signalman never guesses. Your CI suite is that signal: code moves forward only when tests are green, and the report shows exactly why when they're not.

Watch it happen

Build plan for the CI project

Push
Lint
API tests
UI tests
Report
Protect

1/6Every push and pull request triggers the workflow. No manual runs needed.

The big ideas

What you need to know

Workflow in the repo

The pipeline lives in .github/workflows, reviewed and versioned with the tests themselves.

Artifacts

Upload reports, screenshots and traces, so failures can be understood without rerunning.

Secrets

Store test credentials as repository secrets and read them as environment variables.

Status badge

A passing badge in your README is a small, visible signal that the suite really runs.

See it in code

Walk through the code

yaml
1      - run: npx playwright test2      - uses: actions/upload-artifact@v43        if: ${{ !cancelled() }}4        with:5          name: playwright-report6          path: playwright-report/7          retention-days: 14

1/3Run the suite. If any test fails, this step fails.

Add these steps at the end of your test job. Without the if line, the report wouldn't upload when tests fail, which is exactly when you need it.

Save yourself the pain

Common mistakes

Oops

A workflow that only runs when you click a button.

Do this instead

Trigger on push and pull_request so the suite guards every change automatically.

Oops

Tests fail in CI but nobody can see why.

Do this instead

Upload the HTML report and traces as artifacts on every run, especially failed ones.

Your mission

Wire up the pipeline

~40 min

Quick check

Why upload the test report with if: !cancelled() instead of the default?

Go deeper

  1. 1Take one of your other portfolio projects and fully integrate it into a CI/CD pipeline.
  2. 2Configure the pipeline to fail the build on test failure and generate a readable report.
  3. 3Document the full pipeline configuration in your README.

More projects at this stop

Stuck on this topic? Ask an Insider

Get 1:1 guidance from people who've walked this exact path — on the InsideEdge app.

Download
InsideEdge