Compare commits

...
6 Commits
8 changed files with 179 additions and 154 deletions
+9 -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,
@@ -35,7 +35,7 @@ jobs:
- { 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 +43,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 }
+3 -2
View File
@@ -17,8 +17,8 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| ----------- | -------- | | ----------- | -------- |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.4.0-preview1, head, debug, mingw, mswin, ucrt | | `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.4.0-preview1, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 9.4.8.0, head | | `jruby` | 9.1.17.0 - 9.4.8.0, head |
| `truffleruby` | 19.3.0 - 24.0.2, head | | `truffleruby` | 19.3.0 - 24.1.0, head |
| `truffleruby+graalvm` | 21.2.0 - 24.0.2, head | | `truffleruby+graalvm` | 21.2.0 - 24.1.0, head |
`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`).
@@ -233,6 +233,7 @@ It is recommended to first get your build working on Ubuntu and macOS before try
* For Ruby < 2.4, the DevKit MSYS tools are installed and prepended to the `Path`. * For Ruby < 2.4, the DevKit MSYS tools are installed and prepended to the `Path`.
* Use JRuby 9.2.20+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/18#issuecomment-889072695)). * Use JRuby 9.2.20+ on Windows (older versions have [bugs](https://github.com/ruby/setup-ruby/issues/18#issuecomment-889072695)).
* JRuby on Windows has multiple issues ([jruby/jruby#7106](https://github.com/jruby/jruby/issues/7106), [jruby/jruby#7182](https://github.com/jruby/jruby/issues/7182)). * JRuby on Windows has multiple issues ([jruby/jruby#7106](https://github.com/jruby/jruby/issues/7106), [jruby/jruby#7182](https://github.com/jruby/jruby/issues/7182)).
* When compiling extension code, note that the packages required to build Ruby are included when using Windows 2022, but that Windows 2019 does not include all of them, and may require installing package(s). This can be done with [setup-ruby-pkgs](https://github.com/ruby/setup-ruby-pkgs) or via MSYS2's pacman. These packages may be required when installing or updating Ruby std-lib extension gems.
## Versioning ## Versioning
+60 -30
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
@@ -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
+103 -112
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
@@ -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","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","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"],"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": {
+2 -2
View File
@@ -29,14 +29,14 @@
"21.0.0", "21.1.0", "21.2.0", "21.2.0.1", "21.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", "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", "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.0.0", "24.0.1", "24.0.2", "24.1.0",
"head" "head"
], ],
"truffleruby+graalvm": [ "truffleruby+graalvm": [
"21.2.0", "21.3.0", "21.2.0", "21.3.0",
"22.0.0.2", "22.1.0", "22.2.0", "22.3.0", "22.3.1", "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", "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.0.0", "24.0.1", "24.0.2", "24.1.0",
"head" "head"
] ]
} }
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"