This lesson is being piloted (Beta version)


This lesson provides an introduction into Continuous Integration (CI) and Continuous Delivery / Deployment (CD) using GitHub Actions

After learning how to test code and packaging for distribution, one would like to automate these tasks as much as possible.

This is where CI and CD tools come in: automating code integrations and deployments continously!


  • Familiar with git
  • Familiar with Python
  • Text editor
  • GitHub Account


Setup Download files required for the lesson
00:00 1. Introduction What is continuous integration / continuous deployment?
00:05 2. Exit Codes What is an exit code?
00:20 3. Understanding Yet Another Markup Language What is YAML?
00:25 4. YAML and GitHub Actions What is the GitHub Actions specification?
00:30 5. Hello CI World How do I run a simple GitHub Actions job?
00:40 6. CI for Python Package How do I setup CI for a Python package in GitHub Actions?
01:00 7. Matrix How do I run CI for multiple Python versions and /or different platforms?
01:30 8. CD for Python Package How do I setup CD for a Python package in GitHub Actions?
02:00 9. Badge for CI/CD How to add something that communicates / visualizes the status of CI/CD?
02:05 10. (Bonus) Discuss CI/CD for Documentation What is the documetation artifact and what does CI/CD look like for this?
02:10 11. (Bonus) Quick primer on Containers What is a container and why would I want to publish one?
02:20 12. (Bonus) Implementing CI/CD for documentation using containers How to setup CI/CD for documentation using containers?
02:40 Finish

The actual schedule may vary slightly depending on the topics and exercises chosen by the instructor.