- Authenticate to GHCR (first time only)
Skip this if your package is public. Create a Personal Access Token withread:packages
and log in:echo "$GHCR_TOKEN" | docker login ghcr.io -u saiakhil-devops --password-stdin # Latest docker pull ghcr.io/saiakhil-devops/aws-devops-pipeline-demo/app:latest # Or a specific version docker pull ghcr.io/saiakhil-devops/aws-devops-pipeline-demo/app:v0.1.0 docker run --rm -p 5000:5000 ghcr.io/saiakhil-devops/aws-devops-pipeline-demo/app:latest
A professionally structured DevOps project demonstrating a complete CI/CD pipeline using GitHub Actions, Docker, and Python. This repository showcases key DevOps practices including code validation, containerization, automated testing, and deployment readiness — ideal for production and real-world corporate environments.
Click to expand
aws-devops-pipeline-demo/
├─ app/ # Python web application
│ └─ app.py
├─ tests/ # Unit tests
│ └─ test_sample.py
├─ .github/
│ └─ workflows/
│ ├─ main.yml # CI build & test
│ ├─ codeql.yml # CodeQL static analysis
│ └─ trivy.yml # Trivy image scan
├─ Dockerfile # Docker image definition
├─ requirements.txt # Python dependencies
└─ README.md # Project documentation
Category | Tools Used |
---|---|
Language | Python 3.9 |
Version Control | Git + GitHub |
CI/CD Pipeline | GitHub Actions |
Testing | Pytest |
Code Quality | Flake8, Black |
Containerization | Docker |
IDE | VS Code / PyCharm |
This project uses GitHub Actions to automate the following:
- 🧾 Code checkout and Python setup
- 📦 Dependency installation
- ✅ Unit testing using
pytest
- 🔍 Linting with
flake8
and formatting check withblack
- 🐳 Docker image build
- 🛠️ Future: Container push & AWS deployment (coming soon)
Trigger: On every push or pull request to the main
branch.
# Clone the repository
git clone https://github.com/saiakhil-devops/aws-devops-pipeline-demo.git
cd aws-devops-pipeline-demo
# Create virtual environment
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run the app
python app/app.py
pytest tests/
Run all tests inside the tests/
folder and check output. For code coverage:
pytest --cov=app
# Build the Docker image
docker build -t aws-devops-demo .
# Run the container
docker run -p 5000:5000 aws-devops-demo
- Add AWS EC2/Fargate deployment automation
- Integrate Terraform for Infrastructure as Code (IaC)
- Set up DockerHub auto-push
- Add SonarQube for code quality reports
- Configure Slack/MS Teams pipeline alerts
- Multi-environment staging (dev/stage/prod)
Sai Akhil Perumalla
🔹 AWS Certified | DevOps & Cloud Enthusiast | QA Engineer
📍 Scarborough, Ontario
📧 [email protected]
🔗 GitHub | LinkedIn
This project is licensed under the MIT License.
🔥 This repository is crafted to align with real-world DevOps job requirements, showcasing hands-on experience with CI/CD pipelines, Dockerization, automated testing, and scalable workflows.