A simple command-line to-do list application with CI/CD pipeline using Jenkins.
- Add new tasks with unique IDs
- List all tasks
- Update task title and completion status
- Delete tasks by ID
- Clear all tasks
- Comprehensive unit tests with pytest
- Docker containerization
- Jenkins CI/CD pipeline
The Docker image is available on Docker Hub:
- Repository: sunhithreddy/imt2023113
- Tag:
jenkins
# Pull the image
docker pull sunhithreddy/imt2023113:jenkins
# Run the container
docker run -d -p 5000:5000 sunhithreddy/imt2023113:jenkins- Python 3.10+
- Docker (optional)
- Jenkins (for CI/CD)
- Clone the repository:
git clone https://github.com/codetuscan/SE_lab_ci_cd.git
cd SE_lab_ci_cd- Create a virtual environment:
python -m venv venv
venv\Scripts\activate # Windows
source venv/bin/activate # Linux/Mac- Install dependencies:
pip install -r requirements.txtpytest -vdocker build -t todo-app .docker run -d -p 5000:5000 todo-appThe Jenkinsfile includes the following stages:
- Checkout - Clones the repository from GitHub
- Create Virtual Environment - Sets up Python virtual environment
- Install Dependencies - Installs required packages from requirements.txt
- Run Tests - Executes pytest test suite
- Build Docker Image - Creates Docker image
- Push Docker Image - Pushes to Docker Hub
- Deploy Container - Runs the application in a Docker container
SE_lab_ci_cd/
├── app.py # Main application with task management functions
├── test_app.py # Unit tests for the application
├── requirements.txt # Python dependencies (pytest, flask)
├── Dockerfile # Docker configuration
├── Jenkinsfile # Jenkins pipeline configuration
├── overview.png # Jenkins pipeline overview screenshot
├── success.png # Successful build screenshot
└── README.md # This file

