Continuous Integration and Automated Software Testing

Date
May 4, 2022, 10:30 am12:00 pm
Location
Online Event
Event Description
Has your research code ever been broken or given wrong results after you or a collaborator changed something? Have you ever found yourself unable to reproduce some — potentially published — results? As researchers, we can apply a few basic principles of modern software development to our scientific software development process, both to mitigate the risk of such failures and to save time.

One popular method, referred to as Continuous Integration/Continuous Development (CI/CD), involves pushing software changes to a shared repository often in order to avoid the issues that result from individual versions of code diverging over time. This talk introduces a simple and tested workflow for scientific software development that relies on Git along with GitHub Actions which is the automatic testing framework from GitHub.

Workshop format: Presentation and hands-on

Target audience: This talk is intended for a wide research audience. Some knowledge of Git fundamental concepts is required . Through examples, it will introduce a workflow based on basic concepts of Git, testing, and automatic testing. There will be a hands-on exercise using GitHub Actions.

Knowledge prerequisites: Prior experience with version control using Git and Github will be necessary to follow the workshop. No prior experience with Jenkins or other automated testing tools is assumed.

Hardware/software prerequisites: Overarching requirements for all PICSciE virtual workshops are listed at https://researchcomputing.princeton.edu/education/training/virtual-work….  Participants should ensure they have met these requirements in advance, as there will be no technical troubleshooting during the workshop itself. To participate in the hands-on exercise you will need a GitHub account as well as a Linux machine that you have ssh access to. The adroit cluster would be a good candidate for this.

Learning objectives: Attendees will leave with a clear idea of what can be done with CI and automated testing tools, and, hopefully, some motivation to do it.  Participants will also be armed with concrete information on how to set up Github and GitHub Actions to implement the workflow introduced in the talk for their own software development at Princeton.