Skip to content

Build with Ruby 3.3 to match GitHub Pages - #248

Open
maximthomas wants to merge 3 commits into
OpenIdentityPlatform:masterfrom
maximthomas:ci-pin-ubuntu-24.04
Open

maximthomas wants to merge 3 commits into
OpenIdentityPlatform:masterfrom
maximthomas:ci-pin-ubuntu-24.04

Conversation

@maximthomas

@maximthomas maximthomas commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Raises ruby-version in .github/workflows/build.yml from 3.1 to 3.3, so the build job runs on ubuntu-latest again. Also updates actions/checkout from v4 to v7.

Why

ubuntu-latest now resolves to ubuntu-26.04, and ruby/setup-ruby has no Ruby 3.1 build for that image. Since then every run of build fails before the site is built, for example on #247:

Image: ubuntu-26.04
Error: Unavailable version 3.1.7 for ruby on ubuntu-26.04

For ubuntu-26.04, ruby/ruby-builder builds only the latest patch of each supported series, 3.3 included. With ruby-version: '3.3', setup-ruby picks the latest 3.3 release, which has a build for that image.

3.3 is also the series GitHub Pages uses for this site: the legacy build runs github-pages 232 on Ruby 3.3 (pages.github.com/versions.json lists 3.3.4). CI and production now build on the same series, and bundler is no longer held back by Ruby 3.1, which reached EOL in March 2025 (on 3.1 it resolved nokogiri 1.18.10, because 1.19+ requires Ruby ≥ 3.2).

actions/checkout@v4 targets Node.js 20, and the runner logs a deprecation warning for it; v7 runs on Node.js 24.

The first revision pinned the runner to ubuntu-24.04 instead. Raising Ruby, as suggested in review, makes the pin unnecessary.

Verification

The build check on this PR ran on ubuntu-26.04 with Ruby 3.3.13 and github-pages 232: the native gems (commonmarker 0.23.12, eventmachine 1.2.7) compiled, the site built, and the internal-link check passed. The Node.js 20 warning is gone.

ubuntu-latest now resolves to ubuntu-26.04, and ruby/setup-ruby has no
Ruby 3.1 build for that image, so the build job fails on every run:
"Unavailable version 3.1.7 for ruby on ubuntu-26.04". ruby/ruby-builder
still ships Ruby 3.1.7 for ubuntu-24.04, so pin the runner and keep the
Ruby version.
@maximthomas maximthomas added the bug Something isn't working label Oct 20, 2026
@maximthomas
maximthomas marked this pull request as ready for review October 20, 2026 12:57
@maximthomas
maximthomas requested a review from vharseko October 20, 2026 12:57

@vharseko vharseko left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

The pin works — build is green on ubuntu-24.04 with Ruby 3.1.7. One suggestion on the approach, though: the failure is about the Ruby version, not the image, so it might be simpler to fix that instead of pinning.

Raise ruby-version instead of pinning the runner. ruby/ruby-builder already ships ruby-3.3.11 and ruby-3.3.12 for ubuntu-26.04, so ruby-version: '3.3' with runs-on: ubuntu-latest should pass today, and the pin plus its unpin comment would go away. It would also match production: GitHub Pages builds this site (legacy build) with github-pages 232 on Ruby 3.3.4 (pages.github.com/versions.json). Right now CI builds on 3.1.7, so a green check doesn't fully vouch for the Pages build. One CI run would confirm that the github-pages 232 native gems (commonmarker, eventmachine) compile on the 26.04 toolchain.

Staying on 3.1 (EOL since March 2025) also means dependencies quietly fall behind: in this PR's run bundler resolved nokogiri 1.18.10, because 1.19+ requires Ruby ≥ 3.2.

If you'd rather keep the pin for now, could you open a tracking issue for the unpin, so it isn't rediscovered when GitHub retires ubuntu-24.04?

Minor, outside the diff: actions/checkout@v4 logs the Node 20 deprecation warning in this run; @v5 clears it.

Note for after merge: re-running #247's failed run will reuse its old merge commit, so #247 needs a new push (or close/reopen) to pick this up.

@vharseko vharseko added the ci Changes to CI workflows and build automation label Oct 22, 2026
ruby/ruby-builder has a Ruby 3.3 build for ubuntu-26.04, the image
ubuntu-latest resolves to, so raise ruby-version from 3.1 to 3.3 and
drop the ubuntu-24.04 pin. 3.3 is also the series GitHub Pages builds
this site with (pages.github.com/versions.json).

Use the series form: newer runner images only get the latest patch of
each series, so an exact older patch would fail to install again.
v4 targets Node.js 20, and the runner logs a deprecation warning for it.
v7 runs on Node.js 24.
@maximthomas maximthomas changed the title Pin the build runner to ubuntu-24.04 Build with Ruby 3.3 to match GitHub Pages Oct 23, 2026
@maximthomas

Copy link
Copy Markdown
Contributor Author

Switched to raising Ruby: ruby-version: '3.3' on ubuntu-latest, with the pin and its comment removed (5fe2d6d). setup-ruby resolves '3.3' to 3.3.13, which ruby/ruby-builder ships for ubuntu-26.04, and the build run on that commit installed commonmarker and eventmachine on the 26.04 toolchain.

actions/checkout is now v7 (b5fcc85), the current major; like v5, it runs on Node.js 24.

With the pin gone there is nothing to track, so no issue. After this is merged I'll push to #247 so that it builds with the new workflow.

Updated the title and description to match.

@maximthomas maximthomas added the dependencies Pull requests that update a dependency file label Oct 23, 2026
@maximthomas
maximthomas requested a review from vharseko October 23, 2026 07:10

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working ci Changes to CI workflows and build automation dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants