An introductory course on Continuous Integration (CI) and Continuous Delivery (CD), with a final project that runs on GitHub Actions.
After completing the lessons, you will be able to:
- distinguish continuous integration, delivery, and deployment;
- explain the stages of a pipeline;
- write automated tests for Bash scripts;
- configure triggers, jobs, and steps in GitHub Actions;
- apply basic quality and security controls;
- diagnose failures and improve a pipeline.
- basic Git and terminal knowledge;
- a GitHub account;
- Bash and Git installed;
- a repository where you can create workflows.
| Lesson | Topic | Practical outcome |
|---|---|---|
| 01 | CI/CD fundamentals | Distinguish CI, delivery, and deployment |
| 02 | Pipeline anatomy | Design a validation flow |
| 03 | Automated testing | Write reliable Bash tests |
| 04 | Continuous Delivery | Prepare a deliverable artifact |
| 05 | GitHub Actions | Understand the final workflow |
| 06 | Operations and best practices | Evolve the pipeline securely |
The project uses scripts/backup.sh to create compressed backups with SHA-256 checksums. The suite in tests/test_backup.sh tests creation, restoration, integrity, exclusions, and invalid input. Run it locally:
bash tests/test_backup.shThe pipeline in .github/workflows/ci.yml runs the
same checks on every push and pull_request. On a push to main, it also
creates and uploads a verifiable backup artifact, representing the continuous
delivery stage.
Use the utility:
mkdir -p backups
bash scripts/backup.sh ./data ./backups/data.tar.gz
cd backups
sha256sum --check data.tar.gz.sha256- Read one lesson at a time.
- Run the examples in your terminal.
- Answer the review questions without referring to the lesson.
- Change the script, add a test, and observe the pipeline.