Compare commits

...
9 Commits
8 changed files with 180 additions and 153 deletions
+10 -2
View File
@@ -17,7 +17,7 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
os: [ ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, macos-12, macos-13, macos-14, windows-2019, windows-2022 ] os: [ ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, macos-12, macos-13, macos-14, macos-15, windows-2019, windows-2022 ]
ruby: [ ruby: [
'1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', ruby-head, '1.9', '2.0', '2.1', '2.2', '2.3', '2.4', '2.5', '2.6', '2.7', '3.0', '3.1', '3.2', '3.3', ruby-head,
jruby, jruby-head, jruby, jruby-head,
@@ -30,12 +30,13 @@ jobs:
- { os: windows-2022, ruby: mingw } - { os: windows-2022, ruby: mingw }
- { os: windows-2022, ruby: mswin } - { os: windows-2022, ruby: mswin }
- { os: windows-2022, ruby: ucrt } - { os: windows-2022, ruby: ucrt }
- { os: ubuntu-24.04, ruby: asan }
exclude: exclude:
# https://github.com/ruby/setup-ruby/issues/496 # https://github.com/ruby/setup-ruby/issues/496
- { os: ubuntu-22.04, ruby: '2.2' } - { os: ubuntu-22.04, ruby: '2.2' }
- { os: ubuntu-24.04, ruby: '1.9' } - { os: ubuntu-24.04, ruby: '1.9' }
- { os: ubuntu-24.04, ruby: '2.2' } - { os: ubuntu-24.04, ruby: '2.2' }
# These old Rubies fail to compile on macos-14 (macOS 14, arm64), which is used for ruby/ruby-builder # These old Rubies fail to compile on macOS arm64
- { os: macos-14, ruby: '1.9' } - { os: macos-14, ruby: '1.9' }
- { os: macos-14, ruby: '2.0' } - { os: macos-14, ruby: '2.0' }
- { os: macos-14, ruby: '2.1' } - { os: macos-14, ruby: '2.1' }
@@ -43,6 +44,13 @@ jobs:
- { os: macos-14, ruby: '2.3' } - { os: macos-14, ruby: '2.3' }
- { os: macos-14, ruby: '2.4' } - { os: macos-14, ruby: '2.4' }
- { os: macos-14, ruby: '2.5' } - { os: macos-14, ruby: '2.5' }
- { os: macos-15, ruby: '1.9' }
- { os: macos-15, ruby: '2.0' }
- { os: macos-15, ruby: '2.1' }
- { os: macos-15, ruby: '2.2' }
- { os: macos-15, ruby: '2.3' }
- { os: macos-15, ruby: '2.4' }
- { os: macos-15, ruby: '2.5' }
# Windows # Windows
- { os: windows-2019, ruby: '1.9' } - { os: windows-2019, ruby: '1.9' }
- { os: windows-2019, ruby: debug } - { os: windows-2019, ruby: debug }
+2
View File
@@ -20,6 +20,8 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| `truffleruby` | 19.3.0 - 24.1.0, head | | `truffleruby` | 19.3.0 - 24.1.0, head |
| `truffleruby+graalvm` | 21.2.0 - 24.1.0, head | | `truffleruby+graalvm` | 21.2.0 - 24.1.0, head |
The combinations of the available versions and runners can be seen [here](https://github.com/ruby/ruby-builder/releases/tag/toolcache).
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`). `ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64 Regarding Windows ruby master builds, `mingw` is a MSYS2/MinGW build, `head` & `ucrt` are MSYS2/UCRT64
+61 -31
View File
@@ -8,7 +8,6 @@ const core = require('@actions/core')
const tc = require('@actions/tool-cache') const tc = require('@actions/tool-cache')
const { performance } = require('perf_hooks') const { performance } = require('perf_hooks')
const linuxOSInfo = require('linux-os-info') const linuxOSInfo = require('linux-os-info')
import macosRelease from 'macos-release'
export const windows = (os.platform() === 'win32') export const windows = (os.platform() === 'win32')
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14 // Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
@@ -67,7 +66,7 @@ export async function time(name, block) {
} }
export function isHeadVersion(rubyVersion) { export function isHeadVersion(rubyVersion) {
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion) return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan'].includes(rubyVersion)
} }
export function isStableVersion(engine, rubyVersion) { export function isStableVersion(engine, rubyVersion) {
@@ -162,73 +161,105 @@ export async function hashFile(file) {
return hash.digest('hex') return hash.digest('hex')
} }
// macos is not listed explicitly, see below
const GitHubHostedPlatforms = [ const GitHubHostedPlatforms = [
'ubuntu-20.04-x64', 'ubuntu-20.04-x64',
'ubuntu-22.04-x64', 'ubuntu-22.04-x64',
'ubuntu-24.04-x64', 'ubuntu-24.04-x64',
'macos-12-x64',
'macos-13-x64',
'macos-13-arm64',
'macos-14-x64',
'macos-14-arm64',
'windows-2019-x64', 'windows-2019-x64',
'windows-2022-x64', 'windows-2022-x64',
] ]
// Precisely: whether we have builds for that platform and there are GitHub-hosted runners to test it
function isSupportedPlatform() {
const platform = getOSName()
switch (platform) {
case 'ubuntu':
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
case 'macos':
// See https://github.com/ruby/ruby-builder/blob/master/README.md#naming
// 13 on arm64 because of old macos-arm-oss runners
return (os.arch() === 'x64' && parseInt(getOSVersion()) >= 12) ||
(os.arch() === 'arm64' && parseInt(getOSVersion()) >= 13)
case 'windows':
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
}
}
// Actually a self-hosted runner for which the OS and OS version does not correspond to a GitHub-hosted runner image, // Actually a self-hosted runner for which the OS and OS version does not correspond to a GitHub-hosted runner image,
export function isSelfHostedRunner() { export function isSelfHostedRunner() {
if (inputs.selfHosted === undefined) { if (inputs.selfHosted === undefined) {
throw new Error('inputs.selfHosted should have been already set') throw new Error('inputs.selfHosted should have been already set')
} }
return inputs.selfHosted === 'true' || return inputs.selfHosted === 'true' || !isSupportedPlatform()
!GitHubHostedPlatforms.includes(getOSNameVersionArch())
} }
export function selfHostedRunnerReason() { export function selfHostedRunnerReason() {
if (inputs.selfHosted === 'true') { if (inputs.selfHosted === 'true') {
return 'the self-hosted input was set' return 'the self-hosted input was set'
} else if (!GitHubHostedPlatforms.includes(getOSNameVersionArch())) { } else if (!isSupportedPlatform()) {
return 'the platform does not match a GitHub-hosted runner image (or that image is deprecated and no longer supported)' return 'the platform does not match a GitHub-hosted runner image (or that image is deprecated and no longer supported)'
} else { } else {
return 'unknown reason' return 'unknown reason'
} }
} }
let osNameVersion = undefined let osName = undefined
let osVersion = undefined
export function getOSNameVersion() { export function getOSName() {
if (osNameVersion !== undefined) { if (osName !== undefined) {
return osNameVersion return osName
} }
const platform = os.platform() const platform = os.platform()
let osName
let osVersion
if (platform === 'linux') { if (platform === 'linux') {
const info = linuxOSInfo({mode: 'sync'}) const info = linuxOSInfo({mode: 'sync'})
osName = info.id osName = info.id
osVersion = info.version_id
} else if (platform === 'darwin') { } else if (platform === 'darwin') {
osName = 'macos' osName = 'macos'
osVersion = macosRelease().version
} else if (platform === 'win32') { } else if (platform === 'win32') {
osName = 'windows' osName = 'windows'
} else {
throw new Error(`Unknown platform ${platform}`)
}
return osName
}
export function getOSVersion() {
if (osVersion !== undefined) {
return osVersion
}
const platform = os.platform()
if (platform === 'linux') {
const info = linuxOSInfo({mode: 'sync'})
osVersion = info.version_id
} else if (platform === 'darwin') {
// See https://github.com/sindresorhus/macos-release/blob/main/index.js
const darwinVersion = parseInt(os.release().match(/^\d+/)[0])
osVersion = `${darwinVersion - 9}`
} else if (platform === 'win32') {
osVersion = findWindowsVersion() osVersion = findWindowsVersion()
} else { } else {
throw new Error(`Unknown platform ${platform}`) throw new Error(`Unknown platform ${platform}`)
} }
osNameVersion = `${osName}-${osVersion}` return osVersion
return osNameVersion }
export function getOSNameVersion() {
return `${getOSName()}-${getOSVersion()}`
} }
export function getOSNameVersionArch() { export function getOSNameVersionArch() {
return `${getOSNameVersion()}-${os.arch()}` return `${getOSName()}-${getOSVersion()}-${os.arch()}`
} }
function findWindowsVersion() { function findWindowsVersion() {
const version = os.version(); const version = os.version()
const match = version.match(/^Windows Server (\d+) Datacenter/) const match = version.match(/^Windows Server (\d+) Datacenter/)
if (match) { if (match) {
return match[1] return match[1]
@@ -261,15 +292,14 @@ export function getRunnerToolCache() {
// Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE // Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE
function getDefaultToolCachePath() { function getDefaultToolCachePath() {
const platform = getOSNameVersion() const platform = getOSName()
if (platform.startsWith('ubuntu-')) { switch (platform) {
return '/opt/hostedtoolcache' case 'ubuntu':
} else if (platform.startsWith('macos-')) { return '/opt/hostedtoolcache'
return '/Users/runner/hostedtoolcache' case 'macos':
} else if (platform.startsWith('windows-')) { return '/Users/runner/hostedtoolcache'
return 'C:\\hostedtoolcache\\windows' case 'windows':
} else { return 'C:\\hostedtoolcache\\windows'
throw new Error('Unknown platform')
} }
} }
Generated Vendored
+104 -113
View File
@@ -17,7 +17,7 @@ const path = __nccwpck_require__(1017)
const core = __nccwpck_require__(2186) const core = __nccwpck_require__(2186)
const exec = __nccwpck_require__(1514) const exec = __nccwpck_require__(1514)
const cache = __nccwpck_require__(7799) const cache = __nccwpck_require__(7799)
const common = __nccwpck_require__(3143) const common = __nccwpck_require__(4717)
const DEFAULT_CACHE_VERSION = '0' const DEFAULT_CACHE_VERSION = '0'
@@ -280,95 +280,53 @@ async function computeBaseKey(platform, engine, version, lockFile, cacheVersion)
/***/ }), /***/ }),
/***/ 3143: /***/ 4717:
/***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => { /***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
"use strict"; "use strict";
// ESM COMPAT FLAG
__nccwpck_require__.r(__webpack_exports__); __nccwpck_require__.r(__webpack_exports__);
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
// EXPORTS /* harmony export */ "windows": () => (/* binding */ windows),
__nccwpck_require__.d(__webpack_exports__, { /* harmony export */ "drive": () => (/* binding */ drive),
"createToolCacheCompleteFile": () => (/* binding */ createToolCacheCompleteFile), /* harmony export */ "inputs": () => (/* binding */ inputs),
"drive": () => (/* binding */ drive), /* harmony export */ "partition": () => (/* binding */ partition),
"floatVersion": () => (/* binding */ floatVersion), /* harmony export */ "measure": () => (/* binding */ measure),
"getOSNameVersion": () => (/* binding */ getOSNameVersion), /* harmony export */ "time": () => (/* binding */ time),
"getOSNameVersionArch": () => (/* binding */ getOSNameVersionArch), /* harmony export */ "isHeadVersion": () => (/* binding */ isHeadVersion),
"getRunnerToolCache": () => (/* binding */ getRunnerToolCache), /* harmony export */ "isStableVersion": () => (/* binding */ isStableVersion),
"getToolCachePath": () => (/* binding */ getToolCachePath), /* harmony export */ "hasBundlerDefaultGem": () => (/* binding */ hasBundlerDefaultGem),
"getToolCacheRubyPrefix": () => (/* binding */ getToolCacheRubyPrefix), /* harmony export */ "isBundler1Default": () => (/* binding */ isBundler1Default),
"hasBundlerDefaultGem": () => (/* binding */ hasBundlerDefaultGem), /* harmony export */ "isBundler2Default": () => (/* binding */ isBundler2Default),
"hashFile": () => (/* binding */ hashFile), /* harmony export */ "isBundler2dot2Default": () => (/* binding */ isBundler2dot2Default),
"inputs": () => (/* binding */ inputs), /* harmony export */ "targetRubyVersion": () => (/* binding */ targetRubyVersion),
"isBundler1Default": () => (/* binding */ isBundler1Default), /* harmony export */ "floatVersion": () => (/* binding */ floatVersion),
"isBundler2Default": () => (/* binding */ isBundler2Default), /* harmony export */ "hashFile": () => (/* binding */ hashFile),
"isBundler2dot2Default": () => (/* binding */ isBundler2dot2Default), /* harmony export */ "isSelfHostedRunner": () => (/* binding */ isSelfHostedRunner),
"isHeadVersion": () => (/* binding */ isHeadVersion), /* harmony export */ "selfHostedRunnerReason": () => (/* binding */ selfHostedRunnerReason),
"isSelfHostedRunner": () => (/* binding */ isSelfHostedRunner), /* harmony export */ "getOSName": () => (/* binding */ getOSName),
"isStableVersion": () => (/* binding */ isStableVersion), /* harmony export */ "getOSVersion": () => (/* binding */ getOSVersion),
"measure": () => (/* binding */ measure), /* harmony export */ "getOSNameVersion": () => (/* binding */ getOSNameVersion),
"partition": () => (/* binding */ partition), /* harmony export */ "getOSNameVersionArch": () => (/* binding */ getOSNameVersionArch),
"selfHostedRunnerReason": () => (/* binding */ selfHostedRunnerReason), /* harmony export */ "shouldUseToolCache": () => (/* binding */ shouldUseToolCache),
"setupPath": () => (/* binding */ setupPath), /* harmony export */ "getToolCachePath": () => (/* binding */ getToolCachePath),
"shouldUseToolCache": () => (/* binding */ shouldUseToolCache), /* harmony export */ "getRunnerToolCache": () => (/* binding */ getRunnerToolCache),
"targetRubyVersion": () => (/* binding */ targetRubyVersion), /* harmony export */ "toolCacheFind": () => (/* binding */ toolCacheFind),
"time": () => (/* binding */ time), /* harmony export */ "getToolCacheRubyPrefix": () => (/* binding */ getToolCacheRubyPrefix),
"toolCacheCompleteFile": () => (/* binding */ toolCacheCompleteFile), /* harmony export */ "toolCacheCompleteFile": () => (/* binding */ toolCacheCompleteFile),
"toolCacheFind": () => (/* binding */ toolCacheFind), /* harmony export */ "createToolCacheCompleteFile": () => (/* binding */ createToolCacheCompleteFile),
"win2nix": () => (/* binding */ win2nix), /* harmony export */ "win2nix": () => (/* binding */ win2nix),
"windows": () => (/* binding */ windows) /* harmony export */ "setupPath": () => (/* binding */ setupPath)
}); /* harmony export */ });
;// CONCATENATED MODULE: external "node:os"
const external_node_os_namespaceObject = require("node:os");
;// CONCATENATED MODULE: ./node_modules/macos-release/index.js
const nameMap = new Map([
[23, ['Sonoma', '14']],
[22, ['Ventura', '13']],
[21, ['Monterey', '12']],
[20, ['Big Sur', '11']],
[19, ['Catalina', '10.15']],
[18, ['Mojave', '10.14']],
[17, ['High Sierra', '10.13']],
[16, ['Sierra', '10.12']],
[15, ['El Capitan', '10.11']],
[14, ['Yosemite', '10.10']],
[13, ['Mavericks', '10.9']],
[12, ['Mountain Lion', '10.8']],
[11, ['Lion', '10.7']],
[10, ['Snow Leopard', '10.6']],
[9, ['Leopard', '10.5']],
[8, ['Tiger', '10.4']],
[7, ['Panther', '10.3']],
[6, ['Jaguar', '10.2']],
[5, ['Puma', '10.1']],
]);
function macosRelease(release) {
release = Number((release || external_node_os_namespaceObject.release()).split('.')[0]);
const [name, version] = nameMap.get(release) || ['Unknown', ''];
return {
name,
version,
};
}
;// CONCATENATED MODULE: ./common.js
const os = __nccwpck_require__(2037) const os = __nccwpck_require__(2037)
const path = __nccwpck_require__(1017) const path = __nccwpck_require__(1017)
const fs = __nccwpck_require__(7147) const fs = __nccwpck_require__(7147)
const util = __nccwpck_require__(3837) const util = __nccwpck_require__(3837)
const stream = __nccwpck_require__(2781) const stream = __nccwpck_require__(2781)
const common_crypto = __nccwpck_require__(6113) const crypto = __nccwpck_require__(6113)
const core = __nccwpck_require__(2186) const core = __nccwpck_require__(2186)
const tc = __nccwpck_require__(7784) const tc = __nccwpck_require__(7784)
const { performance } = __nccwpck_require__(4074) const { performance } = __nccwpck_require__(4074)
const linuxOSInfo = __nccwpck_require__(8487) const linuxOSInfo = __nccwpck_require__(8487)
;
const windows = (os.platform() === 'win32') const windows = (os.platform() === 'win32')
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14 // Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
@@ -427,7 +385,7 @@ async function time(name, block) {
} }
function isHeadVersion(rubyVersion) { function isHeadVersion(rubyVersion) {
return ['head', 'debug', 'mingw', 'mswin', 'ucrt'].includes(rubyVersion) return ['head', 'debug', 'mingw', 'mswin', 'ucrt', 'asan'].includes(rubyVersion)
} }
function isStableVersion(engine, rubyVersion) { function isStableVersion(engine, rubyVersion) {
@@ -516,79 +474,111 @@ function floatVersion(rubyVersion) {
async function hashFile(file) { async function hashFile(file) {
// See https://github.com/actions/runner/blob/master/src/Misc/expressionFunc/hashFiles/src/hashFiles.ts // See https://github.com/actions/runner/blob/master/src/Misc/expressionFunc/hashFiles/src/hashFiles.ts
const hash = common_crypto.createHash('sha256') const hash = crypto.createHash('sha256')
const pipeline = util.promisify(stream.pipeline) const pipeline = util.promisify(stream.pipeline)
await pipeline(fs.createReadStream(file), hash) await pipeline(fs.createReadStream(file), hash)
return hash.digest('hex') return hash.digest('hex')
} }
// macos is not listed explicitly, see below
const GitHubHostedPlatforms = [ const GitHubHostedPlatforms = [
'ubuntu-20.04-x64', 'ubuntu-20.04-x64',
'ubuntu-22.04-x64', 'ubuntu-22.04-x64',
'ubuntu-24.04-x64', 'ubuntu-24.04-x64',
'macos-12-x64',
'macos-13-x64',
'macos-13-arm64',
'macos-14-x64',
'macos-14-arm64',
'windows-2019-x64', 'windows-2019-x64',
'windows-2022-x64', 'windows-2022-x64',
] ]
// Precisely: whether we have builds for that platform and there are GitHub-hosted runners to test it
function isSupportedPlatform() {
const platform = getOSName()
switch (platform) {
case 'ubuntu':
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
case 'macos':
// See https://github.com/ruby/ruby-builder/blob/master/README.md#naming
// 13 on arm64 because of old macos-arm-oss runners
return (os.arch() === 'x64' && parseInt(getOSVersion()) >= 12) ||
(os.arch() === 'arm64' && parseInt(getOSVersion()) >= 13)
case 'windows':
return GitHubHostedPlatforms.includes(getOSNameVersionArch())
}
}
// Actually a self-hosted runner for which the OS and OS version does not correspond to a GitHub-hosted runner image, // Actually a self-hosted runner for which the OS and OS version does not correspond to a GitHub-hosted runner image,
function isSelfHostedRunner() { function isSelfHostedRunner() {
if (inputs.selfHosted === undefined) { if (inputs.selfHosted === undefined) {
throw new Error('inputs.selfHosted should have been already set') throw new Error('inputs.selfHosted should have been already set')
} }
return inputs.selfHosted === 'true' || return inputs.selfHosted === 'true' || !isSupportedPlatform()
!GitHubHostedPlatforms.includes(getOSNameVersionArch())
} }
function selfHostedRunnerReason() { function selfHostedRunnerReason() {
if (inputs.selfHosted === 'true') { if (inputs.selfHosted === 'true') {
return 'the self-hosted input was set' return 'the self-hosted input was set'
} else if (!GitHubHostedPlatforms.includes(getOSNameVersionArch())) { } else if (!isSupportedPlatform()) {
return 'the platform does not match a GitHub-hosted runner image (or that image is deprecated and no longer supported)' return 'the platform does not match a GitHub-hosted runner image (or that image is deprecated and no longer supported)'
} else { } else {
return 'unknown reason' return 'unknown reason'
} }
} }
let osNameVersion = undefined let osName = undefined
let osVersion = undefined
function getOSNameVersion() { function getOSName() {
if (osNameVersion !== undefined) { if (osName !== undefined) {
return osNameVersion return osName
} }
const platform = os.platform() const platform = os.platform()
let osName
let osVersion
if (platform === 'linux') { if (platform === 'linux') {
const info = linuxOSInfo({mode: 'sync'}) const info = linuxOSInfo({mode: 'sync'})
osName = info.id osName = info.id
osVersion = info.version_id
} else if (platform === 'darwin') { } else if (platform === 'darwin') {
osName = 'macos' osName = 'macos'
osVersion = macosRelease().version
} else if (platform === 'win32') { } else if (platform === 'win32') {
osName = 'windows' osName = 'windows'
} else {
throw new Error(`Unknown platform ${platform}`)
}
return osName
}
function getOSVersion() {
if (osVersion !== undefined) {
return osVersion
}
const platform = os.platform()
if (platform === 'linux') {
const info = linuxOSInfo({mode: 'sync'})
osVersion = info.version_id
} else if (platform === 'darwin') {
// See https://github.com/sindresorhus/macos-release/blob/main/index.js
const darwinVersion = parseInt(os.release().match(/^\d+/)[0])
osVersion = `${darwinVersion - 9}`
} else if (platform === 'win32') {
osVersion = findWindowsVersion() osVersion = findWindowsVersion()
} else { } else {
throw new Error(`Unknown platform ${platform}`) throw new Error(`Unknown platform ${platform}`)
} }
osNameVersion = `${osName}-${osVersion}` return osVersion
return osNameVersion }
function getOSNameVersion() {
return `${getOSName()}-${getOSVersion()}`
} }
function getOSNameVersionArch() { function getOSNameVersionArch() {
return `${getOSNameVersion()}-${os.arch()}` return `${getOSName()}-${getOSVersion()}-${os.arch()}`
} }
function findWindowsVersion() { function findWindowsVersion() {
const version = os.version(); const version = os.version()
const match = version.match(/^Windows Server (\d+) Datacenter/) const match = version.match(/^Windows Server (\d+) Datacenter/)
if (match) { if (match) {
return match[1] return match[1]
@@ -621,15 +611,14 @@ function getRunnerToolCache() {
// Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE // Rubies prebuilt by this action embed this path rather than using $RUNNER_TOOL_CACHE
function getDefaultToolCachePath() { function getDefaultToolCachePath() {
const platform = getOSNameVersion() const platform = getOSName()
if (platform.startsWith('ubuntu-')) { switch (platform) {
return '/opt/hostedtoolcache' case 'ubuntu':
} else if (platform.startsWith('macos-')) { return '/opt/hostedtoolcache'
return '/Users/runner/hostedtoolcache' case 'macos':
} else if (platform.startsWith('windows-')) { return '/Users/runner/hostedtoolcache'
return 'C:\\hostedtoolcache\\windows' case 'windows':
} else { return 'C:\\hostedtoolcache\\windows'
throw new Error('Unknown platform')
} }
} }
@@ -64961,7 +64950,7 @@ const core = __nccwpck_require__(2186)
const exec = __nccwpck_require__(1514) const exec = __nccwpck_require__(1514)
const io = __nccwpck_require__(7436) const io = __nccwpck_require__(7436)
const tc = __nccwpck_require__(7784) const tc = __nccwpck_require__(7784)
const common = __nccwpck_require__(3143) const common = __nccwpck_require__(4717)
const rubyBuilderVersions = __nccwpck_require__(5959) const rubyBuilderVersions = __nccwpck_require__(5959)
const builderReleaseTag = 'toolcache' const builderReleaseTag = 'toolcache'
@@ -65090,7 +65079,7 @@ __nccwpck_require__.r(__webpack_exports__);
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, { /* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
/* harmony export */ "rubygemsUpdate": () => (/* binding */ rubygemsUpdate) /* harmony export */ "rubygemsUpdate": () => (/* binding */ rubygemsUpdate)
/* harmony export */ }); /* harmony export */ });
const common = __nccwpck_require__(3143) const common = __nccwpck_require__(4717)
const path = __nccwpck_require__(1017) const path = __nccwpck_require__(1017)
const exec = __nccwpck_require__(1514) const exec = __nccwpck_require__(1514)
const semver = __nccwpck_require__(1383) const semver = __nccwpck_require__(1383)
@@ -65175,7 +65164,7 @@ const core = __nccwpck_require__(2186)
const exec = __nccwpck_require__(1514) const exec = __nccwpck_require__(1514)
const io = __nccwpck_require__(7436) const io = __nccwpck_require__(7436)
const tc = __nccwpck_require__(7784) const tc = __nccwpck_require__(7784)
const common = __nccwpck_require__(3143) const common = __nccwpck_require__(4717)
const rubyInstallerVersions = __nccwpck_require__(6459) const rubyInstallerVersions = __nccwpck_require__(6459)
const drive = common.drive const drive = common.drive
@@ -65645,7 +65634,7 @@ module.exports = JSON.parse('[[[0,44],"disallowed_STD3_valid"],[[45,46],"valid"]
/***/ ((module) => { /***/ ((module) => {
"use strict"; "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","2.7.8","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.0.6","3.0.7","3.1.0-preview1","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","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.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.4.0-preview1","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.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","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","23.0.0-preview1","23.0.0","23.1.0","23.1.1","23.1.2","24.0.0","24.0.1","24.0.2","24.1.0","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","23.0.0-preview1","23.0.0","23.1.0","23.1.1","23.1.2","24.0.0","24.0.1","24.0.2","24.1.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","2.7.8","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.0.6","3.0.7","3.1.0-preview1","3.1.0","3.1.1","3.1.2","3.1.3","3.1.4","3.1.5","3.1.6","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.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.4.0-preview1","head","debug","asan"],"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","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","23.0.0-preview1","23.0.0","23.1.0","23.1.1","23.1.2","24.0.0","24.0.1","24.0.2","24.1.0","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","23.0.0-preview1","23.0.0","23.1.0","23.1.1","23.1.2","24.0.0","24.0.1","24.0.2","24.1.0","head"]}');
/***/ }), /***/ }),
@@ -65737,7 +65726,7 @@ const fs = __nccwpck_require__(7147)
const path = __nccwpck_require__(1017) const path = __nccwpck_require__(1017)
const core = __nccwpck_require__(2186) const core = __nccwpck_require__(2186)
const exec = __nccwpck_require__(1514) const exec = __nccwpck_require__(1514)
const common = __nccwpck_require__(3143) const common = __nccwpck_require__(4717)
const rubygems = __nccwpck_require__(160) const rubygems = __nccwpck_require__(160)
const bundler = __nccwpck_require__(1641) const bundler = __nccwpck_require__(1641)
@@ -65924,6 +65913,8 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
- { os: macos-13, ruby: '2.5' } - { os: macos-13, ruby: '2.5' }
But of course you should consider dropping support for these long-EOL Rubies, which cannot even be built on recent macOS machines.`) But of course you should consider dropping support for these long-EOL Rubies, which cannot even be built on recent macOS machines.`)
} else if (engine === 'truffleruby' && platform.startsWith('windows')) {
throw new Error('TruffleRuby does not currently support Windows.')
} }
return version return version
+2
View File
@@ -190,6 +190,8 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
- { os: macos-13, ruby: '2.5' } - { os: macos-13, ruby: '2.5' }
But of course you should consider dropping support for these long-EOL Rubies, which cannot even be built on recent macOS machines.`) But of course you should consider dropping support for these long-EOL Rubies, which cannot even be built on recent macOS machines.`)
} else if (engine === 'truffleruby' && platform.startsWith('windows')) {
throw new Error('TruffleRuby does not currently support Windows.')
} }
return version return version
-1
View File
@@ -28,7 +28,6 @@
"@actions/io": "^1.1.2", "@actions/io": "^1.1.2",
"@actions/tool-cache": "^2", "@actions/tool-cache": "^2",
"linux-os-info": "^2.0.0", "linux-os-info": "^2.0.0",
"macos-release": "^3.1.0",
"semver": "^7.3.7" "semver": "^7.3.7"
}, },
"devDependencies": { "devDependencies": {
+1 -1
View File
@@ -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.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.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.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.4.0-preview1", "3.4.0-preview1",
"head", "debug" "head", "debug", "asan"
], ],
"jruby": [ "jruby": [
"9.1.17.0", "9.1.17.0",
Generated
-5
View File
@@ -281,11 +281,6 @@ lru-cache@^6.0.0:
dependencies: dependencies:
yallist "^4.0.0" yallist "^4.0.0"
macos-release@^3.1.0:
version "3.2.0"
resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-3.2.0.tgz#dcee82b6a4932971b1538dbf6f3aabc4a903b613"
integrity sha512-fSErXALFNsnowREYZ49XCdOHF8wOPWuFOGQrAhP7x5J/BqQv+B02cNsTykGpDgRVx43EKg++6ANmTaGTtW+hUA==
mime-db@1.52.0: mime-db@1.52.0:
version "1.52.0" version "1.52.0"
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"