Session: Ruby Served with a side of JavaScript

This talk focuses on one Ruby team’s journey to automating a large complex test matrix for New Relic’s Ruby Agent gem using Github Actions. The Ruby Agent at New Relic must service customers ranging from Ruby 2.0 to Ruby 2.7 and particularly Rails 3.x to Rails 6.0, which presented many challenges with running such a large test suite in the modern Continue Integration environment Github Actions offers.

The Github action itself was written in Javascript as that is the language of choice for Github’s Toolkit. However, Ruby was also used to solve some of the underlying issues in the builds, so we’ll show some deep internals of the multiverse tooling that pre-existed Github Actions and how we adapted and enhanced the Ruby components along the way. This talk will show how we solved building the older, end of life Rubies and setting up the environment, optimizing for speed, and automating all of the Ruby related setups necessary to run the test suite. The test matrix runs nine flavors of Ruby and over 150 containers/jobs for every build.