mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
277ba2a127 | ||
|
|
04c2e2b8e8 | ||
|
|
88a8155095 | ||
|
|
3ad45c51bf | ||
|
|
32110d4e31 |
@@ -34,6 +34,7 @@ jobs:
|
||||
- { os: windows-2025, ruby: mswin }
|
||||
- { os: windows-2025, ruby: ucrt }
|
||||
- { os: ubuntu-24.04, ruby: asan }
|
||||
- { os: ubuntu-24.04, ruby: 3.4-asan }
|
||||
exclude:
|
||||
# https://github.com/ruby/setup-ruby/issues/496
|
||||
- { os: ubuntu-22.04, ruby: '2.2' }
|
||||
|
||||
@@ -26,6 +26,9 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
|
||||
Native extensions are automatically compiled with AddressSanitizer when using `ruby-asan`.
|
||||
`ruby-asan` is currently only available on `ubuntu-24.04`.
|
||||
|
||||
`ruby-3.4-asan` is similar to `ruby-asan` but built from the latest stable 3.4 release tag.
|
||||
Like `ruby-asan`, it's currently only available on `ubuntu-24.04`.
|
||||
|
||||
Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64
|
||||
builds, and `mswin` is a MSVC/VS 2022 build.
|
||||
|
||||
|
||||
@@ -66,7 +66,8 @@ export async function time(name, block) {
|
||||
}
|
||||
|
||||
export function isHeadVersion(rubyVersion) {
|
||||
return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan'].includes(rubyVersion)
|
||||
// 3.4-asan counts as "head" because the version cannot be selected -- you can only get whatever's latest
|
||||
return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan', '3.4-asan'].includes(rubyVersion)
|
||||
}
|
||||
|
||||
export function isStableVersion(engine, rubyVersion) {
|
||||
@@ -128,6 +129,8 @@ export function targetRubyVersion(engine, rubyVersion) {
|
||||
return 2.5
|
||||
} else if (version === 9.3) {
|
||||
return 2.6
|
||||
} else if (version === 9.4) {
|
||||
return 3.1
|
||||
}
|
||||
} else if (engine.startsWith('truffleruby')) {
|
||||
if (version < 21.0) {
|
||||
@@ -136,6 +139,10 @@ export function targetRubyVersion(engine, rubyVersion) {
|
||||
return 2.7
|
||||
} else if (version < 23.0) {
|
||||
return 3.0
|
||||
} else if (version < 23.1) {
|
||||
return 3.1
|
||||
} else if (version < 24.2) {
|
||||
return 3.2
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+11
-4
File diff suppressed because one or more lines are too long
@@ -130,7 +130,7 @@ function parseRubyEngineAndVersion(rubyVersion) {
|
||||
} else if (rubyVersion === '.tool-versions') { // Read from .tool-versions
|
||||
const toolVersions = fs.readFileSync('.tool-versions', 'utf8').trim()
|
||||
const rubyLine = toolVersions.split(/\r?\n/).filter(e => /^ruby\s/.test(e))[0]
|
||||
rubyVersion = rubyLine.match(/^ruby\s+(.+)$/)[1]
|
||||
rubyVersion = rubyLine.split(/\s/)[1]
|
||||
console.log(`Using ${rubyVersion} as input from file .tool-versions`)
|
||||
} else if (rubyVersion === 'mise.toml') { // Read from mise.toml
|
||||
const toolVersions = fs.readFileSync('mise.toml', 'utf8').trim()
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4", "3.2.5", "3.2.6", "3.2.7",
|
||||
"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.4.0-preview1", "3.4.0-preview2", "3.4.0-rc1", "3.4.0", "3.4.1", "3.4.2",
|
||||
"head", "debug", "asan"
|
||||
"head", "debug", "asan", "3.4-asan"
|
||||
],
|
||||
"jruby": [
|
||||
"9.1.17.0",
|
||||
|
||||
@@ -2,21 +2,32 @@ require 'json'
|
||||
hash = File.read('ruby-builder-versions.json')
|
||||
versions = JSON.load(hash).transform_keys(&:to_sym)
|
||||
|
||||
by_minor = versions[:ruby].group_by { |v| v[/^\d\.\d/] }
|
||||
ONLY_LATEST_PATCH = ENV['ONLY_LATEST_PATCH']
|
||||
|
||||
by_minor.each_pair do |minor, versions|
|
||||
puts versions.map { |v| "ruby-#{v}" }.join(', ') if minor
|
||||
def filter(versions)
|
||||
versions -= %w[head]
|
||||
if ONLY_LATEST_PATCH
|
||||
versions = versions.group_by { |v| v[/^\d+\.\d+/] }.map { _2.last }
|
||||
end
|
||||
versions
|
||||
end
|
||||
|
||||
if ONLY_LATEST_PATCH
|
||||
puts filter(versions[:ruby]).map { |v| "ruby-#{v}" }.join(', ')
|
||||
else
|
||||
by_minor = versions[:ruby].group_by { |v| v[/^\d+\.\d+/] }
|
||||
by_minor.each_pair do |minor, versions|
|
||||
puts versions.map { |v| "ruby-#{v}" }.join(', ') if minor
|
||||
end
|
||||
end
|
||||
|
||||
puts
|
||||
puts (versions[:truffleruby] - %w[head]).map { |v| "truffleruby-#{v}" }.join(', ')
|
||||
puts filter(versions[:truffleruby]).map { |v| "truffleruby-#{v}" }.join(', ')
|
||||
|
||||
puts
|
||||
puts (versions[:"truffleruby+graalvm"] - %w[head]).map { |v| "truffleruby+graalvm-#{v}" }.join(', ')
|
||||
puts filter(versions[:"truffleruby+graalvm"]).map { |v| "truffleruby+graalvm-#{v}" }.join(', ')
|
||||
|
||||
puts
|
||||
puts (versions[:jruby] - %w[head]).map { |v| "jruby-#{v}" }.join(', ')
|
||||
|
||||
(versions[:jruby] - %w[head]).each do |v|
|
||||
puts "- { os: windows-latest, jruby-version: #{v}, ruby: jruby-#{v} }"
|
||||
end
|
||||
puts filter(versions[:jruby]).map { |v| "jruby-#{v}" }.join(', ')
|
||||
puts "For Windows:"
|
||||
puts filter(versions[:jruby]).join(', ')
|
||||
|
||||
@@ -74,6 +74,7 @@
|
||||
"3.3.6": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.6-2/rubyinstaller-3.3.6-2-x64.7z",
|
||||
"3.3.7": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.7-1/rubyinstaller-3.3.7-1-x64.7z",
|
||||
"3.4.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.1-2/rubyinstaller-3.4.1-2-x64.7z",
|
||||
"3.4.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.2-1/rubyinstaller-3.4.2-1-x64.7z",
|
||||
"head": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z",
|
||||
"mingw": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mingw.7z",
|
||||
"mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z",
|
||||
|
||||
Reference in New Issue
Block a user