Improving Software with the UW Metronome Becky Gietzel Todd L Miller
Three Ways to Improve Software Automated Builds and Tests Continuous Integration Platform and Version Testing
Talk Overview Introduction to the UW Metronome Use Case: Condor Developers Getting Started with the UW Metronome
The Metronome at UW An automated build and test facility at UW-Madison Infrastructure (“BaTLab”) maintains services and fifty distinct platforms. Software (“Metronome”) reproducibly and reliably runs builds or tests of your software.
Metronome Philosophy Reproducibility. The benefits of reproducible testing need not be further elaborated. Reproducible builds don’t have to be stored (for very long). don’t require a specific person or machine to build. simplify life-cycle management. Support, rather than restrict, users.
Advantages of Metronome Not tied to a particular tool or language. Automatically-generated database of build and test results, with web interface. Uses Condor to distribute runs. The UW Metronome maintains an infrastructure on your behalf.
Metronome’s Web Interface
Usage Concepts Platforms Prerequisites Input & Output Specifications Ordered Commands
Submit Node Execute Node pre_all platform_pre post_all platform_post remote_pre_declare remote_declare remote_pre remote_task remote_post
Use Case: Condor Developers Fully automatic builds and tests. Separate build and test runs. Easy to see if build or test failed. Easy to fetch a particular build. Easy to develop the test suite. Enables cross-platform testing. Used for Condor release binaries.
Condor Developers (2) Nightly builds and tests. Hourly runs on a subset of platforms. Windows/Linux pairing especially helpful. Tests patched OSes. Still want lower-latency testing.
Condor Developers (3) “Nice” features. Printing URL of run results on submission. Streaming user-level output and error. “Big” features. Speed improvements on submit nodes. Concurrent testing. Major web interface additions.
Getting Started Metronome documentation nmi.cs.wisc.edu Build and Test Lab info nmi.cs.wisc.edu/account_request nmi.cs.wisc.edu/support Live Lab status nmi-web.cs.wisc.edu/nmi Any questions?