This repository demonstrates a full QA automation and DevOps workflow using Python, Playwright, Docker, Jenkins, and GitHub Actions. It is designed as a portfolio project to showcase end-to-end automation and DevOps practices.
The project includes:
- Automated tests for a sample web app running headless in a browsers background using Python Playwright.
- Dockerized environment ensuring consistent test execution across machines.
- CI/CD pipelines using:
- GitHub Actions — automatically runs tests on push and pull request.
- Jenkins — can build and run the Dockerized test suite on a Jenkins server.
- Artifact management — screenshots and test logs are saved for review.
- Python 3.11
- Playwright + pytest
- Docker
- GitHub Actions
- Jenkins (pipeline defined in
Jenkinsfile) - Poetry (dependency management)
Clone the repository and build the Docker image:
git clone https://github.com/yourusername/qa-devops-portfolio.git
cd qa-devops-portfolio
docker build -t qa-portfolio .
docker run --rm qa-portfolio
- Runs tests inside a Docker environment.
- Test results will appear directly in the terminal.
The workflow runs automatically on push or pull requests to main.
Workflow steps:
- Checkout repository
- Set up Python & Poetry
- Install dependencies and Playwright browsers
- Run tests inside Docker
- Upload screenshots, logs, and artifacts
Artifacts and logs are accessible in the Actions tab in the GitHub repository.
Jenkins automates Docker builds and test execution using a Jenkinsfile.
Pipeline steps:
- Checkout code from GitHub
- Build Docker image
- Run tests inside the container
- Archive artifacts (screenshots/logs) for review
No local setup is required beyond Docker + Jenkins.
All test outputs, logs, and screenshots are captured and stored for review:
-
GitHub Actions: artifacts are uploaded automatically during workflow runs (screenshots, logs, test reports) and can be downloaded from the Actions → Workflow Run → Artifacts section.
-
Jenkins Pipeline: artifacts are archived using the archiveArtifacts step in the Jenkinsfile. Logs and reports can be accessed from the Jenkins job page.
This ensures centralized access, easy debugging, and reproducible results across local, CI, and Jenkins environments.
GitHub Repository
|
| push / pull request
v
GitHub Actions Runner
|
Install dependencies
|
v
Run tests inside Docker
|
v
Upload screenshots/logs
|
v
Review results in Actions UI