When I started this project, my goal was simple:
๐ to build a universal, self-contained CI/CD test pipeline that could run anywhere โ locally or in the cloud โ with just one command.
๐ก The Idea
I wanted to connect everything a modern QA engineer needs into one reproducible environment:
Playwright (TypeScript) โ for end-to-end UI tests
Docker โ for clean, isolated execution
Allure & Playwright HTML reports โ for beautiful test results
A shared NPM SDK library โ for reusable logic and faster scaling
๐ฌ In short โ a full test platform thatโs portable, modular, and ready to grow.
``
๐งฉ The Architecture
This setup consists of two repositories that work together:
๐ง 1. sdk_automation
Published as an NPM package โ sdk_automation on npm
This SDK contains all shared test logic โ API helpers, MongoDB connectors, data generators, and utilities โ covered by Jest unit tests for reliability.
Think of it as the โbrainsโ of your automation.
๐งช 2. qa-portfolio
This repository is the Playwright E2E test environment.
It uses:
Dockerfile + docker-compose.yml โ for reproducible builds
Playwright test runner โ for UI automation
Allure & HTML reports โ for rich visual reporting
A single entry point command:
docker compose up --build -d; docker compose exec -w /work/playwright_ts playwright_ts sh -c "npm install && npx playwright test --reporter=html"
This builds, runs, and serves the full test report โ no manual setup, no global dependencies.
โ๏ธ What Happens Under the Hood
When you run:
docker compose up --build
Hereโs what happens step-by-step:
Docker builds the Playwright image
The SDK (npm package) installs automatically
Tests run inside the container using Playwright
HTML report is generated after completion
The report is auto-served via serve on port 8080
You can open it locally with:
start ./playwright_ts/playwright-report/index.html
๐ณ Run from Docker Hub You can run the full Playwright + Docker + Allure CI/CD pipeline directly from Docker Hub โ no cloning, no setup, just one command
docker run --rm -it mybono/qa-portfolio:latest
โ
One command โ full CI/CD simulation.
Works on Windows, macOS, and Linux.
๐ The Result
Reusable SDK with strongly-typed logic
Automated E2E tests running in isolation
Beautiful Allure & Playwright reports
Fully reproducible Dockerized pipeline
Hereโs a quick look at the Playwright HTML report output:
๐งฑ Tech Stack Overview
Layer Technology Purpose
Core Playwright + TypeScript UI testing framework
SDK Node.js NPM Package Shared logic and helpers
Reports Allure / Playwright HTML Test reporting
Environment Docker + docker-compose CI/CD containerization
DB MongoDB (via Docker) Test data layer
๐ง Lessons Learned
๐ก 1. Decouple test logic from frameworks โ SDKs make scaling painless.
โ๏ธ 2. Docker ensures parity between local, CI, and cloud environments.
๐ 3. Reports are key to visibility, not just decoration.
๐ 4. CI/CD begins with architecture โ not Jenkins.
๐ฎ Next Steps
- Add Playwright on Python for multi-language support
- ADD Slack notifications
โญ Star It, Fork It, Break It (Then Fix It)
If you like the idea โ star the repos and join the journey!
๐งฉ qa-portfolio
๐ฆ sdk_automation

Top comments (0)