mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f269373437 | ||
|
|
784fcda67f | ||
|
|
f6e05710ec | ||
|
|
207a39969b | ||
|
|
086ffb1a20 | ||
|
|
27ceac8081 | ||
|
|
aac0c64812 | ||
|
|
727fd4feab | ||
|
|
79c01b8847 | ||
|
|
c04af2bb72 | ||
|
|
17f5c914a0 | ||
|
|
5496baa6db | ||
|
|
0ec4904dc7 | ||
|
|
f321cf5a4d | ||
|
|
6af8267b44 | ||
|
|
a6b46b8a08 | ||
|
|
52753b7da8 | ||
|
|
a6e6f86333 | ||
|
|
bc2ba926aa | ||
|
|
371544706a | ||
|
|
50ba3386b0 | ||
|
|
161cd54b69 | ||
|
|
2a9a743e19 | ||
|
|
3a77c29278 | ||
|
|
382d786c8a | ||
|
|
97e35c5302 | ||
|
|
1d0e911f61 | ||
|
|
c48bc1e88d | ||
|
|
713e0f1ab5 | ||
|
|
af43264f2b | ||
|
|
3251c5c21b |
@@ -1,17 +1,24 @@
|
|||||||
name: Update the v1 branch when a release is published
|
name: Create a Release
|
||||||
on:
|
on:
|
||||||
release:
|
workflow_dispatch:
|
||||||
types: [published]
|
|
||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: write # for creating release
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
permissions:
|
env:
|
||||||
contents: write # for git push
|
GH_TOKEN: ${{ github.token }}
|
||||||
|
GH_REPO: ${{ github.repository }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: '3.3'
|
||||||
|
- run: ruby release.rb
|
||||||
|
# The same as the update-v1-branch.yml workflow.
|
||||||
|
# That workflow is not triggered by the release created above because of
|
||||||
|
# https://docs.github.com/en/actions/security-guides/automatic-token-authentication#using-the-github_token-in-a-workflow
|
||||||
- run: git push origin HEAD:v1
|
- run: git push origin HEAD:v1
|
||||||
|
|||||||
+19
-16
@@ -17,9 +17,9 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
os: [ ubuntu-20.04, ubuntu-22.04, ubuntu-24.04, macos-11, macos-12, macos-13, macos-14, macos-arm-oss, 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', '3.4', ruby-head,
|
||||||
jruby, jruby-head,
|
jruby, jruby-head,
|
||||||
truffleruby, truffleruby-head,
|
truffleruby, truffleruby-head,
|
||||||
truffleruby+graalvm, truffleruby+graalvm-head
|
truffleruby+graalvm, truffleruby+graalvm-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-arm-oss (macOS 13, 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,25 +44,27 @@ 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-arm-oss, ruby: '1.9' }
|
- { os: macos-15, ruby: '1.9' }
|
||||||
- { os: macos-arm-oss, ruby: '2.0' }
|
- { os: macos-15, ruby: '2.0' }
|
||||||
- { os: macos-arm-oss, ruby: '2.1' }
|
- { os: macos-15, ruby: '2.1' }
|
||||||
- { os: macos-arm-oss, ruby: '2.2' }
|
- { os: macos-15, ruby: '2.2' }
|
||||||
- { os: macos-arm-oss, ruby: '2.3' }
|
- { os: macos-15, ruby: '2.3' }
|
||||||
- { os: macos-arm-oss, ruby: '2.4' }
|
- { os: macos-15, ruby: '2.4' }
|
||||||
- { os: macos-arm-oss, ruby: '2.5' }
|
- { os: macos-15, ruby: '2.5' }
|
||||||
# Windows
|
# Windows (note: previews are not available on Windows)
|
||||||
- { os: windows-2019, ruby: '1.9' }
|
- { os: windows-2019, ruby: '1.9' }
|
||||||
- { os: windows-2019, ruby: debug }
|
|
||||||
- { os: windows-2019, ruby: truffleruby }
|
|
||||||
- { os: windows-2019, ruby: truffleruby-head }
|
|
||||||
- { os: windows-2019, ruby: truffleruby+graalvm }
|
|
||||||
- { os: windows-2019, ruby: truffleruby+graalvm-head }
|
|
||||||
- { os: windows-2022, ruby: '1.9' }
|
- { os: windows-2022, ruby: '1.9' }
|
||||||
|
- { os: windows-2019, ruby: '3.4.0-preview2' }
|
||||||
|
- { os: windows-2022, ruby: '3.4.0-preview2' }
|
||||||
|
- { os: windows-2019, ruby: debug }
|
||||||
- { os: windows-2022, ruby: debug }
|
- { os: windows-2022, ruby: debug }
|
||||||
|
- { os: windows-2019, ruby: truffleruby }
|
||||||
- { os: windows-2022, ruby: truffleruby }
|
- { os: windows-2022, ruby: truffleruby }
|
||||||
|
- { os: windows-2019, ruby: truffleruby-head }
|
||||||
- { os: windows-2022, ruby: truffleruby-head }
|
- { os: windows-2022, ruby: truffleruby-head }
|
||||||
|
- { os: windows-2019, ruby: truffleruby+graalvm }
|
||||||
- { os: windows-2022, ruby: truffleruby+graalvm }
|
- { os: windows-2022, ruby: truffleruby+graalvm }
|
||||||
|
- { os: windows-2019, ruby: truffleruby+graalvm-head }
|
||||||
- { os: windows-2022, ruby: truffleruby+graalvm-head }
|
- { os: windows-2022, ruby: truffleruby+graalvm-head }
|
||||||
|
|
||||||
name: ${{ matrix.os }} ${{ matrix.ruby }}
|
name: ${{ matrix.os }} ${{ matrix.ruby }}
|
||||||
|
|||||||
@@ -0,0 +1,15 @@
|
|||||||
|
name: Update the v1 branch when a release is published manually
|
||||||
|
on:
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
permissions:
|
||||||
|
contents: write # for git push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
update_branch:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- run: git push origin HEAD:v1
|
||||||
@@ -24,3 +24,7 @@ $ cp pre-commit .git/hooks/pre-commit
|
|||||||
|
|
||||||
This is entirely automated now since [this issue](https://github.com/ruby/setup-ruby/issues/254).
|
This is entirely automated now since [this issue](https://github.com/ruby/setup-ruby/issues/254).
|
||||||
If you do not see a new version more than 24 hours after it was released feel free to file an issue.
|
If you do not see a new version more than 24 hours after it was released feel free to file an issue.
|
||||||
|
|
||||||
|
## Release
|
||||||
|
|
||||||
|
Maintainers can create a release automatically by running [this workflow](https://github.com/ruby/setup-ruby/actions/workflows/release.yml).
|
||||||
|
|||||||
@@ -15,10 +15,10 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
|
|||||||
|
|
||||||
| Interpreter | Versions |
|
| Interpreter | Versions |
|
||||||
| ----------- | -------- |
|
| ----------- | -------- |
|
||||||
| `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-preview2, head, debug, mingw, mswin, ucrt |
|
||||||
| `jruby` | 9.1.17.0 - 9.4.7.0, head |
|
| `jruby` | 9.1.17.0 - 9.4.8.0, head |
|
||||||
| `truffleruby` | 19.3.0 - 24.0.1, head |
|
| `truffleruby` | 19.3.0 - 24.1.0, head |
|
||||||
| `truffleruby+graalvm` | 21.2.0 - 24.0.1, 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`).
|
||||||
|
|
||||||
@@ -43,7 +43,7 @@ The action works on these [GitHub-hosted runners](https://docs.github.com/en/act
|
|||||||
| Operating System | Supported |
|
| Operating System | Supported |
|
||||||
| ---------------- | --------- |
|
| ---------------- | --------- |
|
||||||
| Ubuntu | `ubuntu-20.04`, `ubuntu-22.04`, `ubuntu-24.04` |
|
| Ubuntu | `ubuntu-20.04`, `ubuntu-22.04`, `ubuntu-24.04` |
|
||||||
| macOS | `macos-11`, `macos-12`, `macos-13`, `macos-14` |
|
| macOS | `macos-12`, `macos-13`, `macos-14` |
|
||||||
| Windows | `windows-2019`, `windows-2022` |
|
| Windows | `windows-2019`, `windows-2022` |
|
||||||
|
|
||||||
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
|
The prebuilt releases are generated by [ruby-builder](https://github.com/ruby/ruby-builder)
|
||||||
@@ -51,10 +51,10 @@ and on Windows by [RubyInstaller2](https://github.com/oneclick/rubyinstaller2).
|
|||||||
The `mingw`, `ucrt` and `mswin` builds are generated by [ruby-loco](https://github.com/MSP-Greg/ruby-loco).
|
The `mingw`, `ucrt` and `mswin` builds are generated by [ruby-loco](https://github.com/MSP-Greg/ruby-loco).
|
||||||
`ruby-head` is generated by [ruby-dev-builder](https://github.com/ruby/ruby-dev-builder),
|
`ruby-head` is generated by [ruby-dev-builder](https://github.com/ruby/ruby-dev-builder),
|
||||||
`jruby-head` is generated by [jruby-dev-builder](https://github.com/ruby/jruby-dev-builder),
|
`jruby-head` is generated by [jruby-dev-builder](https://github.com/ruby/jruby-dev-builder),
|
||||||
`truffleruby-head` is generated by [truffleruby-dev-builder](https://github.com/ruby/truffleruby-dev-builder)
|
`truffleruby-head` and `truffleruby+graalvm-head` are generated by [truffleruby-dev-builder](https://github.com/ruby/truffleruby-dev-builder).
|
||||||
and `truffleruby+graalvm` is generated by [graalvm-ce-dev-builds](https://github.com/graalvm/graalvm-ce-dev-builds).
|
The full list of available Ruby versions can be seen in [ruby-builder-versions.json](ruby-builder-versions.json) for Ubuntu and macOS
|
||||||
The full list of available Ruby versions can be seen in [ruby-builder-versions.json](ruby-builder-versions.json)
|
(although some combinations are not available, see [the full list](https://github.com/ruby/ruby-builder/releases/tag/toolcache))
|
||||||
for Ubuntu and macOS and in [windows-versions.json](windows-versions.json) for Windows.
|
and in [windows-versions.json](windows-versions.json) for Windows.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@@ -70,7 +70,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: ruby/setup-ruby@v1
|
- uses: ruby/setup-ruby@v1
|
||||||
with:
|
with:
|
||||||
ruby-version: '3.3' # Not needed with a .ruby-version file
|
ruby-version: '3.3' # Not needed with a `.ruby-version` or `.tool-versions`
|
||||||
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
|
||||||
- run: bundle exec rake
|
- run: bundle exec rake
|
||||||
```
|
```
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
@@ -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,74 +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-11-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]
|
||||||
@@ -262,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')
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+105
-115
File diff suppressed because one or more lines are too long
@@ -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
|
||||||
|
|||||||
@@ -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": {
|
||||||
|
|||||||
+17
@@ -0,0 +1,17 @@
|
|||||||
|
require 'json'
|
||||||
|
|
||||||
|
def run(command_line)
|
||||||
|
puts "$ #{command_line}"
|
||||||
|
output = `#{command_line}`
|
||||||
|
puts output
|
||||||
|
raise $?.inspect unless $?.success?
|
||||||
|
output
|
||||||
|
end
|
||||||
|
|
||||||
|
latest_release_tag = run 'gh release view --json tagName'
|
||||||
|
latest_release_tag = JSON.load(latest_release_tag).fetch('tagName')
|
||||||
|
|
||||||
|
raise latest_release_tag unless latest_release_tag =~ /\Av(\d+).(\d+).(\d+)\z/
|
||||||
|
tag = "v#{$1}.#{Integer($2)+1}.0"
|
||||||
|
|
||||||
|
run "gh release create --generate-notes --latest #{tag}"
|
||||||
@@ -11,16 +11,16 @@
|
|||||||
"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",
|
"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.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.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.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.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", "3.4.0-preview2",
|
||||||
"head", "debug"
|
"head", "debug", "asan"
|
||||||
],
|
],
|
||||||
"jruby": [
|
"jruby": [
|
||||||
"9.1.17.0",
|
"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.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.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.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"
|
"head"
|
||||||
],
|
],
|
||||||
"truffleruby": [
|
"truffleruby": [
|
||||||
@@ -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.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.0", "24.0.1", "24.0.2", "24.1.0",
|
||||||
"head"
|
"head"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -62,10 +62,13 @@
|
|||||||
"3.2.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.2-1/rubyinstaller-3.2.2-1-x64.7z",
|
"3.2.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.2-1/rubyinstaller-3.2.2-1-x64.7z",
|
||||||
"3.2.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.3-1/rubyinstaller-3.2.3-1-x64.7z",
|
"3.2.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.3-1/rubyinstaller-3.2.3-1-x64.7z",
|
||||||
"3.2.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.4-1/rubyinstaller-3.2.4-1-x64.7z",
|
"3.2.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.4-1/rubyinstaller-3.2.4-1-x64.7z",
|
||||||
|
"3.2.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.5-1/rubyinstaller-3.2.5-1-x64.7z",
|
||||||
"3.3.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.0-1/rubyinstaller-3.3.0-1-x64.7z",
|
"3.3.0": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.0-1/rubyinstaller-3.3.0-1-x64.7z",
|
||||||
"3.3.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.1-1/rubyinstaller-3.3.1-1-x64.7z",
|
"3.3.1": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.1-1/rubyinstaller-3.3.1-1-x64.7z",
|
||||||
"3.3.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.2-1/rubyinstaller-3.3.2-1-x64.7z",
|
"3.3.2": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.2-1/rubyinstaller-3.3.2-1-x64.7z",
|
||||||
"3.3.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.3-1/rubyinstaller-3.3.3-1-x64.7z",
|
"3.3.3": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.3-1/rubyinstaller-3.3.3-1-x64.7z",
|
||||||
|
"3.3.4": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.4-1/rubyinstaller-3.3.4-1-x64.7z",
|
||||||
|
"3.3.5": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.5-1/rubyinstaller-3.3.5-1-x64.7z",
|
||||||
"head": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-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",
|
"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",
|
"mswin": "https://github.com/MSP-Greg/ruby-loco/releases/download/ruby-master/ruby-mswin.7z",
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
Reference in New Issue
Block a user