As part of Advanced Computational Methods 2, Ryan Pepper and Alvaro Perez-Diaz prepared a student led seminar on Continuous Integration (CI). This is a method used by software developers to automatically test software, in order that changes do not break existing functionality.
After setting up students machines with prerequisites for the workshop, such as Git, GitHub accounts and SSH keys,Alvaro started by giving a short presentation on where Continuous Integration fitted into the typical developers workflow, and gave some details of free services such as CircleCI and TravisCI which provide free CI services to open source projects on GitHub.
The seminar then proceeded with a live example where Ryan showed the steps to set up a working Python test environment on CircleCI for a repository that students created. Some more advanced testing features of Python were shown, as well as some additional advanced features of Circle such as SSH build access, which is useful to diagnose failing tests.
A detailed explanation and all the code is available HERE.