# Continuous Integration for GitHub projects
{id: ci-for-github-projects}

## What is Git
{id: git}

* Distributed Version Control System

## What is GitHub
{id: github}

* Cloud-based hosting for git repositories
* Now owned by Microsoft

## CI - Continuous Integration
{id: ci}

* As frequently as possible
* Check if all the code works together

## When to run?
{id: when-to-run}

* "Nightly build"
* ...
* On each push

## What to run?
{id: what-to-run}

* Compilation
* Unit tests
* Integration tests
* Acceptances tests
* ...
* Whatever you can

## CD - Continuous Delivery (or Deployment)
{id: cd}

* After tests are successful, automatically deploy the code.

## Cloud-based CI system
{id: cloud-based-ci}

* [Travis-CI](https://travis-ci.org/)
* [Appveyor](https://www.appveyor.com/)
* [Circle CI](https://circleci.com/)
* GitHub Actions
* ...

## Exercises
{id: exercises}

* [python-with-test](https://github.com/collab-dev/python-with-test)
* [python-without-test](https://github.com/collab-dev/python-without-test)

* For the repository so you have your own copy
* Clone the forked repo

* Enable Travis, Appveyor
* Add tests
* Add badges to the `README.md` of the repo.
* Add test coverage reporting

