Continuous Integration and Automated Software Testing

by PICSciE/Research Computing

Training/Workshop Programming Languages Research & Data Analysis

Wed, Sep 21, 2022

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

Add to Calendar

Online Event




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

Instructor Bio: 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.


David Luet's profile photo

David Luet

Princeton University

David is a member of the RSE leadership team. In this role, he manages part of the RSE group's project portfolio with the goal of supporting the RSEs in their efforts to develop high-quality research software that helps Princeton researchers advance their scholarly endeavors. His current portfolio includes hydrology, seismology, high energy physics, plasma physics, astrophysics, and neuroscience. David's introduction to research software and high-performance computing came as a graduate student working in computational mechanics. Prior to joining the RSE group, David held a dual position in the department of Geosciences and Research Computing at Princeton University doing High-Performance Computing support and software engineering.

Hosted By

PICSciE/Research Computing | View More Events
Co-hosted with: The Graduate School

Contact the organizers