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 Thi…
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