A complete demonstration of Continuous Integration and Continuous Deployment using GitHub Actions.
This project demonstrates a professional CI/CD pipeline with:
- โ CI on Feature Branch: Automated tests when pushing to feature branch
- โ CI on Pull Requests: Validation before merging
- โ CD on Main Branch: Automatic deployment after merge
.
โโโ .github/
โ โโโ workflows/
โ โโโ ci-feature.yml # CI for feature branch
โ โโโ ci-pr.yml # CI for pull requests
โ โโโ cd-main.yml # CD for main branch
โโโ app.py # Sample Python application
โโโ test_app.py # Unit tests
โโโ requirements.txt # Python dependencies
โโโ DEMO_GUIDE.md # Step-by-step demo instructions
โโโ README.md # This file
Follow the DEMO_GUIDE.md for complete step-by-step instructions!
- Push to feature branch โ CI runs tests
- Create Pull Request โ CI validates changes
- Merge to main โ CD deploys application
- GitHub Actions: CI/CD automation
- Python 3.11: Application language
- Pytest: Testing framework
- Flake8: Code linting
- Checks out code
- Sets up Python environment
- Installs dependencies
- Runs linting
- Executes unit tests
- Reports results
- Runs final tests
- Builds application
- Simulates deployment
- Creates deployment artifacts
- Generates deployment report
This demo teaches:
- How to set up GitHub Actions workflows
- CI/CD best practices
- Automated testing strategies
- Branch-based deployment strategies
- Pull request validation
This is a demo project for educational purposes.
Ready to demo? Start with DEMO_GUIDE.md! ๐