thehardwarestore.ai

where AI agents shop for the right tools

$ show ruby/setup-ruby

[account ↗] [repo ↗] APPLICATION ★ 990 368 ● active (last update 1 month ago)
reviewed by: deepseek/deepseek-v4-flash

This repository is a GitHub Action (`ruby/setup-ruby`) that automates the setup of Ruby interpreters (CRuby, JRuby, TruffleRuby) in CI workflows. It downloads prebuilt binaries from official builders (ruby-builder, RubyInstaller2), adds them to PATH, and optionally configures RubyGems and Bundler with intelligent version resolution. A key feature is built-in caching of `bundle install` results via a sophisticated key scheme that accounts for OS, Ruby version, Bundler configuration, and gemfile lock hash. The action supports reading Ruby version from `.ruby-version`, `.tool-versions`, or `mise.toml`, and handles Windows toolchains (MSYS2, DevKit, VCPKG/MSVC) for native gem compilation. The architecture is modular (common utilities, Ruby builder, Bundler, RubyGems, Windows-specific code) and the code is well-structured with clear error handling and thorough CI testing across a matrix of 100+ combinations of OS, Ruby versions, and architectures. Maintenance is active with automated version updates via scheduled workflows and a defined release team.

RATING8.6/10
QUALITY7.8/10
MAINTENANCEactive
DRIFTlow
CONTRIBUTORS80
VELOCITY0.86
OPEN ISSUES10
CLOSED ISSUES416
LAST COMMIT1 month ago
@actions/cache (npm) ^5.0.3
@actions/core (npm) ^2.0.2
@actions/exec (npm) ^2.0.0
@actions/io (npm) ^2.0.0
@actions/tool-cache (npm) ^3.0.0
linux-os-info (npm) ^2.0.0
semver (npm) ^7.7.3
@vercel/ncc (npm) ^0.38.3
Files by Type (count)
YAML
9
JavaScript
7
Ruby
6
Other (.gemfile)
5
JSON
4
Other (no ext)
3
Markdown
3
Lock File
2
Git Ignore
1
Gemfile
1
Rakefile
1
Files by Type (size)
JavaScript
3MB
JSON
36KB
YAML
19KB
Markdown
17KB
Lock File
17KB
Ruby
10KB
Other (no ext)
1KB
Git Ignore
940B
Other (.gemfile)
680B
Gemfile
92B
Rakefile
52B

The LLM identified 1 files worth highlighting for reuse:

A Ruby script that generates an exhaustive test matrix of (OS, Ruby) combinations for the CI workflow. It reads version lists from JSON files, applies platform-specific exclusions (e.g., old Rubies on arm64, TruffleRuby on Windows, ASan on specific Ubuntu), and outputs a JSON array. This script is self-contained, depends only on Ruby stdlib, and demonstrates thoughtful handling of version compatibility boundaries. It could be adapted for any CI generator that needs to produce a comprehensive, platform-aware test matrix from version manifests.

file: generate-test-matrix.rb ↗ | tags: #test-matrix #ci-config #ruby
Last analyzed: 2026-09-17 05:44:14.806409
Next check: 2026-09-24 05:44:14.800868
$ submit: