Resources

What to learn next

If you have not already read the testing chapter it is suggested to do so to learn more about the different kinds of tests and their benefits in order to make the most of CI.

Further reading

Travis offers a great deal of functionality not described here for automating other processes related to the testing and deployment of projects. Look into these, the Travis documentation offers a good starting point for this.

A list of example Travis builds and tests for various languages/frameworks is available here.

Travis’s official tutorial is here. A tutorial focussed on using Travis with R can be found here, tutorials geared towards python can be found here and here.

Definitions/glossary

Build: A group of jobs. For example, a build might have two jobs, each of which tests a project with a different version of a programming language. A build finishes when all of its jobs are finished.

Computational environment: The environment where a project is run, including the operating system, the software installed on it, and the versions of both.

Continuous integration: The process of regularly combining the work of project members into a centralised version. Also called CI. CI software typically runs tests on the integrated version of a project to identify conflicts and bugs introduced by the integration.

GitHub: A widely used version control platform.

Job: An automated process that clones your repository into a virtual environment and then carries out a series of phases such as compiling your code and running tests. A job fails if the return code of the script encounters an error.

Travis: A commonly used continuous integration platform.

Bibliography

Materials used: What is continuous integration?

Materials used: What is Travis and how does it work?

Materials used: Setting up continuous integration with Travis

Materials used: Limitations of CI

Materials used: Best practise for continuous integration

Acknowledgements

Thanks to David Jones of the University of Sheffield RSE group for useful discussions.