Continuous Integration and Automated Software Testing

by PICSciE/Research Computing

Training/Workshop Research & Data Analysis

Wed, May 4, 2022

10:30 AM – 12 PM EDT (GMT-4)

Add to Calendar

Online Event

13
Registered

Registration

Details

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-workshop-requirements.  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.
 

Speakers

David Luet's profile photo

David Luet

Princeton University

David Luet received his Ph.D. from Princeton University’s MAE department in 2016. Since then part of his work has been helping large research groups, as well as individual researchers, on campus adopt better scientific software development practices. As part of this work, David administrates PrincetonUniversity GitHub organization as well as Research Computing Jenkins server. He works in Research Computing as well as the Climate Modeling group in the Geosciences department.

 

Hosted By

PICSciE/Research Computing | View More Events
Co-hosted with: GradFUTURES

Contact the organizers