Compare commits

...
9 Commits
Author SHA1 Message Date
Benoit Daloze 9eb537ca03 Add support for ubuntu-26.04 and ubuntu-26.04-arm 2026-06-20 15:21:29 +02:00
Benoit Daloze e1a3b100ca Improve versions-strings-for-builder.rb 2026-06-20 15:21:29 +02:00
Benoit Daloze 0df5288f06 Remove gem install sassc on Windows JRuby
* It's quite slow and sassc is EOL.
2026-06-20 13:14:10 +02:00
ruby-builder-bot 89f90524b8 Add jruby-10.0.6.0 2026-06-11 11:13:12 -07:00
Thomas Countz 12fd324f1d Use BUNDLE_LOCKFILE when detecting the lockfile
Honor `BUNDLE_LOCKFILE` (added in Bundler 4) when selecting the lockfile used
for Bundler version detection, deployment mode, and bundler-cache keys. Without
this, workflows using an alternate lockfile can read the wrong `BUNDLED WITH`
version and generate cache keys from the wrong lockfile.
2026-06-08 22:30:58 +02:00
ruby-builder-bot a99ac84464 Add jruby-9.4.15.0 2026-06-08 21:17:07 +02:00
ruby-builder-bot afeafc3d1a Add ruby-4.0.5 2026-05-20 20:08:03 +00:00
ruby-builder-bot 28c65f7bd3 Update CRuby releases on Windows 2026-05-20 19:47:54 +00:00
ruby-builder-bot 97ecb7b512 Update CRuby releases on Windows 2026-05-16 19:34:56 +00:00
10 changed files with 49 additions and 19 deletions
-3
View File
@@ -135,9 +135,6 @@ jobs:
- name: bash test
shell: bash
run: echo ~ && bundle install
- name: Windows JRuby
if: runner.os == 'Windows' && startsWith(matrix.ruby, 'jruby')
run: gem install sassc
testDotRubyVersion:
name: "Test .ruby-version"
+4 -4
View File
@@ -15,7 +15,7 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| Interpreter | Versions |
| ----------- | -------- |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 4.0.4, head, debug, mingw, mswin, ucrt |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 4.0.5, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 10.1.0.0, head |
| `truffleruby` | 19.3.0 - 34.0.1, head |
| `truffleruby+graalvm` | 21.2.0 - 34.0.1, head |
@@ -49,7 +49,7 @@ The action works on these [GitHub-hosted runners](https://docs.github.com/en/act
| Operating System | Supported |
| ---------------- | --------- |
| Ubuntu | `ubuntu-22.04`, `ubuntu-24.04`, `ubuntu-22.04-arm`, `ubuntu-24.04-arm` |
| Ubuntu | `ubuntu-22.04`, `ubuntu-24.04`, `ubuntu-26.04`, `ubuntu-22.04-arm`, `ubuntu-24.04-arm`, `ubuntu-26.04-arm` |
| macOS | `macos-14` and newer versions |
| Windows | `windows-2022`, `windows-2025`, `windows-11-arm` |
@@ -168,7 +168,7 @@ should be able to fix them by setting `rubygems: 3.0.0` or higher.
By default, Bundler is installed as follows:
* If there is a `Gemfile.lock` file (or `$BUNDLE_GEMFILE.lock` or `gems.locked`) with a `BUNDLED WITH` section,
* If there is a `Gemfile.lock` file (or `$BUNDLE_LOCKFILE`, `$BUNDLE_GEMFILE.lock`, or `gems.locked`) with a `BUNDLED WITH` section,
that version of Bundler will be installed and used.
* If the Ruby ships with Bundler 2.2+ (as a default gem), that version is used.
* Otherwise, the latest compatible Bundler version is installed (Bundler 2 on Ruby >= 2.3, Bundler 1 on Ruby < 2.3).
@@ -188,7 +188,7 @@ Note that any step doing `bundle install` (for the root `Gemfile`) or `gem insta
This caching speeds up installing gems significantly and avoids too many requests to RubyGems.org.
It needs a `Gemfile` (or `$BUNDLE_GEMFILE` or `gems.rb`) under the [`working-directory`](#working-directory).
If there is a `Gemfile.lock` (or `$BUNDLE_GEMFILE.lock` or `gems.locked`), `bundle config --local deployment true` is used.
If there is a `Gemfile.lock` (or `$BUNDLE_LOCKFILE`, `$BUNDLE_GEMFILE.lock`, or `gems.locked`), `bundle config --local deployment true` is used.
To use a `Gemfile` which is not at the root or has a different name, set `BUNDLE_GEMFILE` in the `env` at the job level
as shown in the [example](#matrix-of-gemfiles).
+4 -2
View File
@@ -15,14 +15,16 @@ function isValidBundlerVersion(bundlerVersion) {
// The returned gemfile is guaranteed to exist, the lockfile might not exist
export function detectGemfiles() {
const gemfilePath = process.env['BUNDLE_GEMFILE'] || 'Gemfile'
const lockfilePath = process.env['BUNDLE_LOCKFILE']
if (fs.existsSync(gemfilePath)) {
return [gemfilePath, `${gemfilePath}.lock`]
return [gemfilePath, lockfilePath || `${gemfilePath}.lock`]
} else if (process.env['BUNDLE_GEMFILE']) {
throw new Error(`$BUNDLE_GEMFILE is set to ${gemfilePath} but does not exist`)
}
if (fs.existsSync("gems.rb")) {
return ["gems.rb", "gems.locked"]
return ["gems.rb", lockfilePath || "gems.locked"]
}
return [null, null]
+2
View File
@@ -186,6 +186,8 @@ const GitHubHostedPlatforms = [
'ubuntu-22.04-arm64',
'ubuntu-24.04-x64',
'ubuntu-24.04-arm64',
'ubuntu-26.04-x64',
'ubuntu-26.04-arm64',
'windows-2022-x64',
'windows-2025-x64',
'windows-11-arm64'
Generated Vendored
+9 -5
View File
File diff suppressed because one or more lines are too long
+8 -1
View File
@@ -23,8 +23,10 @@ runners = %w[
macos-15-intel
ubuntu-22.04
ubuntu-24.04
ubuntu-26.04
ubuntu-22.04-arm
ubuntu-24.04-arm
ubuntu-26.04-arm
windows-2022
windows-2025
windows-11-arm
@@ -38,6 +40,9 @@ macos_arm64_runners, macos_x64_runners = macos_runners.partition { |runner| !run
ubuntu_arm64_runners, ubuntu_x64_runners = ubuntu_runners.partition { |runner| runner.end_with?('-arm')}
windows_arm64_runners, windows_x64_runners = windows_runners.partition { |runner| runner.end_with?('-arm') }
asan_runners = ubuntu_x64_runners.grep(/ubuntu-24\.04/)
ubuntu2604_runners = ubuntu_runners.grep(/ubuntu-26\.04/)
# Versions
ruby_builder_versions = JSON.load(File.read('ruby-builder-versions.json'))
windows_versions = JSON.load(File.read('windows-versions.json'))
@@ -61,7 +66,7 @@ matrix += windows_x64_runners.product(ruby_loco_versions)
# asan: latest release + head
asan_versions = %w[asan-release asan]
matrix += ubuntu_x64_runners.sort.last(1).product(asan_versions)
matrix += asan_runners.sort.last(1).product(asan_versions)
# https://github.com/ruby/setup-ruby/pull/596#discussion_r1606047680
matrix -= (ubuntu_runners - %w[ubuntu-22.04]).product(%w[1.9])
@@ -71,6 +76,8 @@ matrix -= ubuntu_runners.product(%w[2.2])
matrix -= macos_arm64_runners.product(%w[1.9 2.0 2.1 2.2 2.3 2.4 2.5])
# These old Rubies fail to compile or segfault on Linux arm64
matrix -= ubuntu_arm64_runners.product(%w[1.9 2.0 2.1 2.2])
# These old Rubies fail to compile on ubuntu-26.04
matrix -= ubuntu2604_runners.product(%w[1.9 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.0 3.1])
# RubyInstaller windows-arm64 builds only exist for Ruby 3.4+
matrix -= windows_arm64_runners.product(%w[2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 3.0 3.1 3.2 3.3])
+3 -3
View File
@@ -15,15 +15,15 @@
"3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.4", "3.3.5", "3.3.6", "3.3.7", "3.3.8", "3.3.9", "3.3.10", "3.3.11",
"3.4.0-preview1", "3.4.0-preview2", "3.4.0-rc1", "3.4.0", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7", "3.4.8", "3.4.9",
"3.5.0-preview1",
"4.0.0-preview2", "4.0.0-preview3", "4.0.0", "4.0.1", "4.0.2", "4.0.3", "4.0.4",
"4.0.0-preview2", "4.0.0-preview3", "4.0.0", "4.0.1", "4.0.2", "4.0.3", "4.0.4", "4.0.5",
"head", "debug", "asan", "asan-release"
],
"jruby": [
"9.1.17.0",
"9.2.9.0", "9.2.10.0", "9.2.11.0", "9.2.11.1", "9.2.12.0", "9.2.13.0", "9.2.14.0", "9.2.15.0", "9.2.16.0", "9.2.17.0", "9.2.18.0", "9.2.19.0", "9.2.20.0", "9.2.20.1", "9.2.21.0",
"9.3.0.0", "9.3.1.0", "9.3.2.0", "9.3.3.0", "9.3.4.0", "9.3.6.0", "9.3.7.0", "9.3.8.0", "9.3.9.0", "9.3.10.0", "9.3.11.0", "9.3.13.0", "9.3.14.0", "9.3.15.0",
"9.4.0.0", "9.4.1.0", "9.4.2.0", "9.4.3.0", "9.4.4.0", "9.4.5.0", "9.4.6.0", "9.4.7.0", "9.4.8.0", "9.4.9.0", "9.4.10.0", "9.4.11.0", "9.4.12.0", "9.4.12.1", "9.4.13.0", "9.4.14.0",
"10.0.0.0", "10.0.0.1", "10.0.1.0", "10.0.2.0", "10.0.3.0", "10.0.4.0", "10.0.5.0",
"9.4.0.0", "9.4.1.0", "9.4.2.0", "9.4.3.0", "9.4.4.0", "9.4.5.0", "9.4.6.0", "9.4.7.0", "9.4.8.0", "9.4.9.0", "9.4.10.0", "9.4.11.0", "9.4.12.0", "9.4.12.1", "9.4.13.0", "9.4.14.0", "9.4.15.0",
"10.0.0.0", "10.0.0.1", "10.0.1.0", "10.0.2.0", "10.0.3.0", "10.0.4.0", "10.0.5.0", "10.0.6.0",
"10.1.0.0",
"head"
],
+3 -1
View File
@@ -5,7 +5,7 @@ versions = JSON.load(hash).transform_keys(&:to_sym)
ONLY_LATEST_PATCH = ENV['ONLY_LATEST_PATCH']
def filter(versions)
versions -= %w[head]
versions -= %w[head debug asan asan-release 3.5.0-preview1]
if ONLY_LATEST_PATCH
versions = versions.group_by { |v| v[/^\d+\.\d+/] }.map { _2.last }
end
@@ -29,5 +29,7 @@ puts filter(versions[:"truffleruby+graalvm"]).map { |v| "truffleruby+graalvm-#{v
puts
puts filter(versions[:jruby]).map { |v| "jruby-#{v}" }.join(', ')
puts
puts "For Windows:"
puts filter(versions[:jruby]).join(', ')
+8
View File
@@ -300,6 +300,14 @@
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"4.0.4": {
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"4.0.5": {
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"head": {
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
+8
View File
@@ -300,6 +300,14 @@
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-4.0.3-1/rubyinstaller-4.0.3-1-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-4.0.3-1/rubyinstaller-4.0.3-1-x64.7z"
},
"4.0.4": {
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-4.0.4-1/rubyinstaller-4.0.4-1-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-4.0.4-1/rubyinstaller-4.0.4-1-x64.7z"
},
"4.0.5": {
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-4.0.5-1/rubyinstaller-4.0.5-1-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-4.0.5-1/rubyinstaller-4.0.5-1-x64.7z"
},
"head": {
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z"