Lesson 12: Continuous Integration

Homepage Content Slides Video

Warning

This lesson is under construction. Learn from it at your own risk. If you have any feedback, please fill out our General Feedback Survey.

Overview

Continuous Integration

Continuous Integration is a name for any kind of automated tool that performs the following tasks:

Rough diagram of CI workflow
  1. Detects changes to your project
  2. Runs a suite of tests on the changed code
  3. Alerts the people that care if something good/bad happened

Automated Testing

Automated Testing integrated into Github

Tool: Travis CI

Travis CI is very popular among Github users because it is easy to setup with Github projects and integrates well with Github workflows. It's also free for Open Source projects, although the service itself is not Open Source.

Travis CI logo

Runs test suites for:

Tool: Jenkins

Jenkins is a more powerful version of Travis, but as a result is more complicated to use and set up. While you can pay to use a public instance of Jenkins, it is more common to run your own instance of Jenkins.

TODO: Setup Travis on a GH Repo

We've spent the past two lessons building and testing a web app. Now, let's upload it to Github and set up CI on it.

Please follow the guide on the website.

Further Reading

Jenkins Documentation
The Jenkins project documentation. If you need a broad overview read the Getting Started with... docs.
TravisCI Documentation
If you end up working on a large project on GitHub you're going to interface with TravisCI sooner or later.
CircleCI Documentation
CircleCI is a tool we didn't get to touch on. It is very similar to Travis.