Ruby Served with a side of JavaScript
summary
A Ruby agent test matrix for Ruby 2.0–2.7 and Rails 3.x–6.0 uses GitHub Actions with custom JavaScript actions while key Ruby work runs in Ruby itself; nine Ruby flavors produce over 150 jobs so building Rubies locally and built Ruby ourselves solves OpenSSL and legacy-compat issues (including downgrading OpenSSL for CI), caching drops per-Ruby build from ~8 minutes to ~1 and overall CPU from ~1,000–1,300 to 225 minutes, and keeping build logic in JS shrinks workflows and improves cache control.
AI-written summary · about
chapters (30)
- 0:00Intro
- 0:23Safe Harbor
- 3:10The New Relic Ruby Agent
- 4:39Which Means: Our Test Matrix is Huge!
- 7:26For Example
- 7:47Another Example
- 8:14What Exactly is Broken?
- 9:24Difficult Choice for Us
- 11:01The Decision
- 13:01The Docker Challenge
- 15:52Second Attempt: Build it all in the Workflow
- 16:41Third Attempt: JavaScript Action
- 17:16Complex Logic becomes much easier
- 18:48Our own Action, allows nice encapsulation
- 20:03Welcome to the Promise Land JavaScript does this weird thing to a Rubyist : async/ await
- 20:51Want an output from Shell Command?
- 22:56The MySQL gem just would not pay attention to what we wanted.
- 23:28Only Choice: Break the Rules
- 25:02Breaking the Rules: Bonus Edition
- 25:59Downgrade MySQL client libraries
- 26:46Finally, we can work on our workflow
- 28:25Workflow clash Problem!
- 29:17Solution: Retry to the rescue
- 30:17Workflow gets the shrink ray ogain!
- 30:54Why move caching to action?
- 32:36Bundler gets its own cache
- 33:53Pro Tip! Caching is a Lifesaver
- 34:20Debug Tip: Isolate to focus your effort!
- 35:42Let's skip Environment setup when only building
- 36:32The End Result








