mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
bc4e585e26 | ||
|
|
2cf593d66b | ||
|
|
a26e1fb6b3 | ||
|
|
4d060a10e6 | ||
|
|
77fe3b48b7 | ||
|
|
8df78e5576 | ||
|
|
b8e62b879e | ||
|
|
d60780f6b6 | ||
|
|
8aa012b56d | ||
|
|
628be4e0e4 |
@@ -15,10 +15,10 @@ 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 3.2.0, head, debug, mingw, mswin, ucrt |
|
||||
| `jruby` | 9.1.17.0 - 9.4.0.0, head |
|
||||
| `truffleruby` | 19.3.0 - 22.3.0, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 22.3.0, head |
|
||||
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.2.1, head, debug, mingw, mswin, ucrt |
|
||||
| `jruby` | 9.1.17.0 - 9.4.1.0, head |
|
||||
| `truffleruby` | 19.3.0 - 22.3.1, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 22.3.1, head |
|
||||
|
||||
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
||||
|
||||
|
||||
@@ -47,6 +47,18 @@ export async function measure(name, block) {
|
||||
}
|
||||
}
|
||||
|
||||
// Same as mesaure() but without the group, and no time shown on error
|
||||
export async function time(name, block) {
|
||||
console.log(`> ${name}`)
|
||||
const start = performance.now()
|
||||
const value = await block()
|
||||
const end = performance.now()
|
||||
|
||||
const duration = (end - start) / 1000.0
|
||||
console.log(`Took ${duration.toFixed(2).padStart(6)} seconds`)
|
||||
return value
|
||||
}
|
||||
|
||||
export function isHeadVersion(rubyVersion) {
|
||||
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion)
|
||||
}
|
||||
|
||||
+20
-3
@@ -282,6 +282,7 @@ __nccwpck_require__.r(__webpack_exports__);
|
||||
/* harmony export */ "drive": () => (/* binding */ drive),
|
||||
/* harmony export */ "partition": () => (/* binding */ partition),
|
||||
/* harmony export */ "measure": () => (/* binding */ measure),
|
||||
/* harmony export */ "time": () => (/* binding */ time),
|
||||
/* harmony export */ "isHeadVersion": () => (/* binding */ isHeadVersion),
|
||||
/* harmony export */ "isStableVersion": () => (/* binding */ isStableVersion),
|
||||
/* harmony export */ "hasBundlerDefaultGem": () => (/* binding */ hasBundlerDefaultGem),
|
||||
@@ -348,6 +349,18 @@ async function measure(name, block) {
|
||||
}
|
||||
}
|
||||
|
||||
// Same as mesaure() but without the group, and no time shown on error
|
||||
async function time(name, block) {
|
||||
console.log(`> ${name}`)
|
||||
const start = performance.now()
|
||||
const value = await block()
|
||||
const end = performance.now()
|
||||
|
||||
const duration = (end - start) / 1000.0
|
||||
console.log(`Took ${duration.toFixed(2).padStart(6)} seconds`)
|
||||
return value
|
||||
}
|
||||
|
||||
function isHeadVersion(rubyVersion) {
|
||||
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion)
|
||||
}
|
||||
@@ -68641,7 +68654,7 @@ module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"]
|
||||
/***/ ((module) => {
|
||||
|
||||
"use strict";
|
||||
module.exports = JSON.parse('{"ruby":["1.9.3-p551","2.0.0-p648","2.1.9","2.2.10","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.4.6","2.4.7","2.4.9","2.4.10","2.5.0","2.5.1","2.5.2","2.5.3","2.5.4","2.5.5","2.5.6","2.5.7","2.5.8","2.5.9","2.6.0","2.6.1","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.6.10","2.7.0","2.7.1","2.7.2","2.7.3","2.7.4","2.7.5","2.7.6","2.7.7","3.0.0-preview1","3.0.0-preview2","3.0.0-rc1","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.1.0-preview1","3.1.0","3.1.1","3.1.2","3.1.3","3.2.0-preview1","3.2.0-preview2","3.2.0-preview3","3.2.0-rc1","3.2.0","head","debug"],"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.4.0.0","head"],"truffleruby":["19.3.0","19.3.1","20.0.0","20.1.0","20.2.0","20.3.0","21.0.0","21.1.0","21.2.0","21.2.0.1","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","head"],"truffleruby+graalvm":["21.2.0","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","head"]}');
|
||||
module.exports = JSON.parse('{"ruby":["1.9.3-p551","2.0.0-p648","2.1.9","2.2.10","2.3.0","2.3.1","2.3.2","2.3.3","2.3.4","2.3.5","2.3.6","2.3.7","2.3.8","2.4.0","2.4.1","2.4.2","2.4.3","2.4.4","2.4.5","2.4.6","2.4.7","2.4.9","2.4.10","2.5.0","2.5.1","2.5.2","2.5.3","2.5.4","2.5.5","2.5.6","2.5.7","2.5.8","2.5.9","2.6.0","2.6.1","2.6.2","2.6.3","2.6.4","2.6.5","2.6.6","2.6.7","2.6.8","2.6.9","2.6.10","2.7.0","2.7.1","2.7.2","2.7.3","2.7.4","2.7.5","2.7.6","2.7.7","3.0.0-preview1","3.0.0-preview2","3.0.0-rc1","3.0.0","3.0.1","3.0.2","3.0.3","3.0.4","3.0.5","3.1.0-preview1","3.1.0","3.1.1","3.1.2","3.1.3","3.2.0-preview1","3.2.0-preview2","3.2.0-preview3","3.2.0-rc1","3.2.0","3.2.1","head","debug"],"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.4.0.0","9.4.1.0","head"],"truffleruby":["19.3.0","19.3.1","20.0.0","20.1.0","20.2.0","20.3.0","21.0.0","21.1.0","21.2.0","21.2.0.1","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","22.3.1","head"],"truffleruby+graalvm":["21.2.0","21.3.0","22.0.0.2","22.1.0","22.2.0","22.3.0","22.3.1","head"]}');
|
||||
|
||||
/***/ }),
|
||||
|
||||
@@ -68753,7 +68766,11 @@ async function run() {
|
||||
try {
|
||||
await setupRuby()
|
||||
} catch (error) {
|
||||
core.setFailed(error.stack)
|
||||
if (/\bprocess\b.+\bfailed\b/.test(error.message)) {
|
||||
core.setFailed(error.message)
|
||||
} else {
|
||||
core.setFailed(error.stack)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -68818,7 +68835,7 @@ async function setupRuby(options = {}) {
|
||||
}
|
||||
|
||||
if (inputs['bundler-cache'] === 'true') {
|
||||
await common.measure('bundle install', async () =>
|
||||
await common.time('bundle install', async () =>
|
||||
bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version']))
|
||||
}
|
||||
|
||||
|
||||
@@ -23,7 +23,11 @@ export async function run() {
|
||||
try {
|
||||
await setupRuby()
|
||||
} catch (error) {
|
||||
core.setFailed(error.stack)
|
||||
if (/\bprocess\b.+\bfailed\b/.test(error.message)) {
|
||||
core.setFailed(error.message)
|
||||
} else {
|
||||
core.setFailed(error.stack)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +92,7 @@ export async function setupRuby(options = {}) {
|
||||
}
|
||||
|
||||
if (inputs['bundler-cache'] === 'true') {
|
||||
await common.measure('bundle install', async () =>
|
||||
await common.time('bundle install', async () =>
|
||||
bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version']))
|
||||
}
|
||||
|
||||
|
||||
+43
-46
@@ -1,65 +1,62 @@
|
||||
versions = ARGV.fetch(0).split(',').map(&:strip)
|
||||
versions.each do |engine_version|
|
||||
engine_input, version = engine_version.split('-', 2)
|
||||
p versions
|
||||
|
||||
if engine_input == 'windows'
|
||||
versions.each do |engine_version|
|
||||
puts engine_version
|
||||
engine, version = engine_version.split('-', 2)
|
||||
p [engine, version]
|
||||
|
||||
if engine == 'windows'
|
||||
require_relative 'generate-windows-versions'
|
||||
exit
|
||||
end
|
||||
|
||||
MATCH = case engine_input
|
||||
match = case engine
|
||||
when 'ruby', 'jruby'
|
||||
/^\d+\.\d+\./
|
||||
when 'truffleruby'
|
||||
when 'truffleruby', 'truffleruby+graalvm'
|
||||
/^\d+\./
|
||||
end
|
||||
|
||||
raise unless version[MATCH]
|
||||
raise engine_version unless version[match]
|
||||
|
||||
engines = [engine_input]
|
||||
engines << 'truffleruby+graalvm' if engine_input == 'truffleruby'
|
||||
# Update ruby-builder-versions.json
|
||||
file = "#{__dir__}/ruby-builder-versions.json"
|
||||
lines = File.readlines(file, chomp: true)
|
||||
|
||||
engines.each do |engine|
|
||||
puts engine
|
||||
from = lines.index { |line| line.include?(%{"#{engine}": [}) }
|
||||
raise "Could not find start of #{engine}" unless from
|
||||
to = from
|
||||
to += 1 until lines[to].include?(']')
|
||||
|
||||
# Update ruby-builder-versions.json
|
||||
file = "#{__dir__}/ruby-builder-versions.json"
|
||||
lines = File.readlines(file, chomp: true)
|
||||
from += 1 # [
|
||||
to -= 2 # head, ]
|
||||
|
||||
from = lines.index { |line| line.include?(%{"#{engine}": [}) }
|
||||
raise "Could not find start of #{engine}" unless from
|
||||
to = from
|
||||
to += 1 until lines[to].include?(']')
|
||||
puts lines[from..to]
|
||||
|
||||
from += 1 # [
|
||||
to -= 2 # head, ]
|
||||
release_line = lines[from..to].find { |line|
|
||||
v = line[/"([^"]+)"/, 1] and v[match] == version[match]
|
||||
}
|
||||
|
||||
puts lines[from..to]
|
||||
|
||||
release_line = lines[from..to].find { |line|
|
||||
v = line[/"([^"]+)"/, 1] and v[MATCH] == version[MATCH]
|
||||
}
|
||||
|
||||
if release_line
|
||||
append = " #{version.inspect},"
|
||||
release_line << append unless release_line.end_with?(append)
|
||||
else
|
||||
lines.insert to+1, " #{version.inspect},"
|
||||
end
|
||||
|
||||
File.write(file, lines.join("\n") + "\n")
|
||||
|
||||
# Update README.md
|
||||
file = "#{__dir__}/README.md"
|
||||
lines = File.readlines(file)
|
||||
engine_line = lines.find { |line| line.start_with?("| `#{engine}`") }
|
||||
engine_line.sub!(/(.+ (?:-|until)) (\d+(?:\.\d+)+(?:-\w+)?)/) do
|
||||
if Gem::Version.new(version) > Gem::Version.new($2)
|
||||
"#{$1} #{version}"
|
||||
else
|
||||
$&
|
||||
end
|
||||
end
|
||||
File.write(file, lines.join)
|
||||
if release_line
|
||||
append = " #{version.inspect},"
|
||||
release_line << append unless release_line.end_with?(append)
|
||||
else
|
||||
lines.insert to+1, " #{version.inspect},"
|
||||
end
|
||||
|
||||
File.write(file, lines.join("\n") + "\n")
|
||||
|
||||
# Update README.md
|
||||
file = "#{__dir__}/README.md"
|
||||
lines = File.readlines(file)
|
||||
engine_line = lines.find { |line| line.start_with?("| `#{engine}`") }
|
||||
engine_line.sub!(/(.+ (?:-|until)) (\d+(?:\.\d+)+(?:-\w+)?)/) do
|
||||
if Gem::Version.new(version) > Gem::Version.new($2)
|
||||
"#{$1} #{version}"
|
||||
else
|
||||
$&
|
||||
end
|
||||
end
|
||||
File.write(file, lines.join)
|
||||
end
|
||||
|
||||
@@ -11,26 +11,26 @@
|
||||
"2.7.0", "2.7.1", "2.7.2", "2.7.3", "2.7.4", "2.7.5", "2.7.6", "2.7.7",
|
||||
"3.0.0-preview1", "3.0.0-preview2", "3.0.0-rc1", "3.0.0", "3.0.1", "3.0.2", "3.0.3", "3.0.4", "3.0.5",
|
||||
"3.1.0-preview1", "3.1.0", "3.1.1", "3.1.2", "3.1.3",
|
||||
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0",
|
||||
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1",
|
||||
"head", "debug"
|
||||
],
|
||||
"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.4.0.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.4.0.0", "9.4.1.0",
|
||||
"head"
|
||||
],
|
||||
"truffleruby": [
|
||||
"19.3.0", "19.3.1",
|
||||
"20.0.0", "20.1.0", "20.2.0", "20.3.0",
|
||||
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.3.0",
|
||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0",
|
||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
|
||||
"head"
|
||||
],
|
||||
"truffleruby+graalvm": [
|
||||
"21.2.0", "21.3.0",
|
||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0",
|
||||
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1",
|
||||
"head"
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user