Skip to content

ci: Restore a working build - #84

Merged
abreckner merged 3 commits into
masterfrom
tonybreckner/fix-ci-ruby-setup
Aug 18, 2026
Merged

ci: Restore a working build#84
abreckner merged 3 commits into
masterfrom
tonybreckner/fix-ci-ruby-setup

Conversation

@abreckner

Copy link
Copy Markdown
Contributor

Why

CI has failed on master since 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@v1 is deprecated and can no longer resolve ruby-version: 3.1.x:

##[error]Version 3.1.x not found

This is what kills the job. Replaced with the maintained ruby/setup-ruby@v1, which also handles bundle install and caching, so the hand-rolled install step goes away.

2. Gemfile.lock pinned BUNDLED WITH 2.1.4. Bundler re-execs into whatever version the lockfile names, and 2.1.4 cannot load socket on current rubygems:

Bundler 2.3.27 is running, but your lockfile was generated with 2.1.4.
Installing Bundler 2.1.4 and restarting using that version.
  cannot load such file -- socket (LoadError)

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@v2 runs 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.1 needs logger, dropped from the default gems in Ruby 4.0cannot load such file -- logger
  • parser 3.2.0.0 (via rubocop 1.43) needs racc, dropped in Ruby 3.3cannot load such file -- racc/parser

Both 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 rake gives 93 examples, 0 failures. So the code was fine all along; only the harness was broken.

🤖 Generated with Claude Code

abreckner and others added 3 commits August 18, 2026 10:40
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>

@wizardofosmium wizardofosmium left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍 🔨

@abreckner
abreckner merged commit 7bac698 into master Aug 18, 2026
1 check passed
@abreckner
abreckner deleted the tonybreckner/fix-ci-ruby-setup branch August 18, 2026 02:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants