ci: Restore a working build - #84
Merged
Merged
Conversation
CI has failed on master since July and last passed in March. The build dies during setup, so no test has actually run in months. Three separate breakages, each fixed here: actions/setup-ruby@v1 is deprecated and can no longer resolve "3.1.x", failing the job outright. Replaced with the maintained ruby/setup-ruby@v1, which also handles bundle install and caching. The lockfile pinned BUNDLED WITH 2.1.4. Bundler re-execs into the version named there, and 2.1.4 cannot load "socket" on current rubygems, so it crashes before installing anything. Dropping the pin lets the installed bundler run; the workflow asks for the latest. actions/checkout@v2 runs on a deprecated Node. Ruby stays on 3.1 deliberately. The pinned dependencies do not survive newer runtimes: activesupport 7.1.1 needs "logger", dropped from the default gems in Ruby 4.0, and parser 3.2.0.0 needs "racc", dropped in 3.3. Moving off 3.1 means upgrading those first, which is its own change. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
The lockfile recorded xpm_ruby 0.4.0 while the gemspec resolves 0.4.1, so bundler refuses to install under the frozen mode CI runs in. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
handle_response parsed the response body for "Detail" in three separate branches, which put it over the AbcSize limit. The lint failure has been there since the 403 branch was added, unseen because the build was already dying during setup. Behaviour is unchanged. Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
abreckner
requested review from
chrisrbnelson,
gokninski,
rmustafin and
wizardofosmium
August 18, 2026 02:47
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
CI has failed on
mastersince 2026-07-27 and last passed on 2026-03-24. Every run since dies during setup, in under 10 seconds, so no test has actually run in months — including on the commit currently pinned by Practice-Ignition.What's broken, and the fix
1.
actions/setup-ruby@v1is deprecated and can no longer resolveruby-version: 3.1.x:This is what kills the job. Replaced with the maintained
ruby/setup-ruby@v1, which also handlesbundle installand caching, so the hand-rolled install step goes away.2.
Gemfile.lockpinnedBUNDLED WITH 2.1.4. Bundler re-execs into whatever version the lockfile names, and 2.1.4 cannot loadsocketon current rubygems:It crashes before installing a single gem. Dropping the stale pin lets the installed bundler run, and the workflow asks for
bundler: latest. This also unbreaks local development — the repo is currently un-bundleable on any modern Ruby.3.
actions/checkout@v2runs on a deprecated Node version. Bumped to v4.Why Ruby stays on 3.1
Deliberate, and worth stating so nobody "helpfully" bumps it: the pinned dependencies don't survive newer runtimes.
activesupport 7.1.1needslogger, dropped from the default gems in Ruby 4.0 →cannot load such file -- loggerparser 3.2.0.0(viarubocop 1.43) needsracc, dropped in Ruby 3.3 →cannot load such file -- racc/parserBoth are reproducible locally. Moving to a newer Ruby means upgrading activesupport and rubocop first, which is a separate change with its own review surface.
Testing
CI config can only really be verified by CI, so this PR is its own test — the build going green is the assertion.
Independently, the suite itself is healthy: on Ruby 3.4.10 with a working bundler,
bundle exec rakegives 93 examples, 0 failures. So the code was fine all along; only the harness was broken.🤖 Generated with Claude Code