Workshop 22nd February 2016 4 p.m. 177/2023 (Boldrewood Campus)
An Introduction to Continuous Integration Services in Scientific Programming
Ryan Pepper, Alvaro Perez-Diaz
University of Southampton
- ARCHER, C, C++, Cloud computing, Complex Systems, Computer Science, CVS, Data Science, Education, Git, HPC, IPython/Jupyter Notebook, Iridis, Java, Jenkins, Julia, Linux, Lyceum, Mac OS X, NGCM, Python, Raspberry Pi, Scientific Computing, Software Engineering, SVN, Vagrant, VirtualBox
- Ryan Pepper
In modern software engineering, the use of source control forms an essential tool in the programmers belt. Concerted efforts have been made by organisations such as Software Carpentry to teach these skills to those in the scientific community in order to improve the quality of research. A sadly neglected tool which works hand in hand with source control is continuous integration.
With a continuous integration service (such as Travis CI, Circle CI, etc.) and appropriate software tests, every time a commit or pull request is made the set of tests run automatically in a closed environment. If you are in control of source code shared by a team, this allows users to avoid wasted time from running broken code. Many CI services are also free to open source projects, though paid services also exist for private code at reasonable prices.
In this workshop, we will give an introduction to setting up and using Circle CI through GitHub to run software tests. Familiarity with Git is necessary for this workshop, and the demonstration will be given using Python examples, although the procedure is similar for other languages and testing frameworks.
You will need your own laptop at this session. Before attending please create an account on GitHub.com. If you're using a Windows machine, please download and install VirtualBox as a Linux VM image will be provided. If you're using Linux or OS X, feel free to use your own environment - you will just need Git and Python 3.5 to follow our example.
E-mail: firstname.lastname@example.org, email@example.com