This project simulates I2C acknowledgment signals from multiple devices with a full CI/CD DevOps pipeline using Jenkins, Docker, and Python. PDF waveform reports are generated post-simulation.
- Jenkins Pipelines with Groovy
- Docker multi-stage builds
- Python-based I2C simulation
- Waveform and PDF export
- Slack/email stub notifications
Course: DV2530 | Decision Support Systems
Author: Sudheer Vadrevu | Master of Science in Computer Science, BTH
Timeline: Feb 2023 – Apr 2023
This project demonstrates a complete CI/CD framework for a Python-based I2C hardware simulation system using Jenkins, Docker, and GitHub Actions. It reflects modern DevOps practices tailored for embedded systems simulation pipelines.
ci/– Jenkins pipeline configs, Slack notifications, and Groovy scriptsdocker/– Multi-stage Dockerfile with health checksdocs/– This README and supporting project documentationsimulation/– Python scripts simulating I2C protocol and waveform generatortests/– Unit tests usingpytestfor simulation logicutils/– CLI tools and waveform export functionsrequirements.txt– Python dependency list with fixed versions
- Jenkins pipeline with multistage test, build, and delivery
- Slack notifications for build status
- Code quality checks via
pylint - Dockerized environment to ensure reproducibility
- GitHub Actions for automated backup testing
- I2C simulation engine with ACK/NACK and clock line
- Multiple device support and waveform visualization
- Export support as PDF diagrams and waveform logs
- Jenkins, GitHub Actions
- Docker (multi-stage builds)
- Python (Pytest, Pylint, Matplotlib)
- VSCode, Git
This project was implemented under the course DV2530 at BTH to demonstrate DevOps integration for embedded software workflows. All components were version-controlled and containerized to mimic real-world CI/CD practices.
- ✅ CI/CD pipeline fully automated for every push
- ✅ Docker container builds with waveform tools
- ✅ Simulated I2C verified via unit tests and visualization
- ✅ Successfully presented as a master’s project deliverable at BTH