mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab177d40ee | ||
|
|
6797dcbb9a | ||
|
|
a16e0e6641 | ||
|
|
0481980f17 | ||
|
|
cf7216d52f | ||
|
|
1c58d16f1a | ||
|
|
1dc7956827 | ||
|
|
b8714f777a | ||
|
|
d3e13b3e37 | ||
|
|
4df093a946 | ||
|
|
866b91cc02 | ||
|
|
c4cd38db20 | ||
|
|
3fee676323 | ||
|
|
c61fbf19ae | ||
|
|
4451173596 | ||
|
|
805f878062 | ||
|
|
ab85640192 | ||
|
|
c2e9820886 |
@@ -17,10 +17,10 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm, macos-13, macos-14, macos-15, windows-2022, windows-2025, windows-11-arm ]
|
||||
os: [ ubuntu-22.04, ubuntu-24.04, ubuntu-22.04-arm, ubuntu-24.04-arm, macos-13, macos-14, macos-15, macos-15-intel, windows-2022, windows-2025, windows-11-arm ]
|
||||
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', '3.4', ruby-head,
|
||||
jruby, jruby-head,
|
||||
jruby-9.4, jruby, jruby-head,
|
||||
truffleruby, truffleruby-head,
|
||||
truffleruby+graalvm, truffleruby+graalvm-head
|
||||
]
|
||||
@@ -195,8 +195,7 @@ jobs:
|
||||
shell: bash
|
||||
run: echo ~ && bundle install
|
||||
- name: Windows JRuby
|
||||
# Should be startsWith(matrix.ruby, 'jruby') but broken on jruby-head: https://github.com/jruby/jruby/issues/8623
|
||||
if: startsWith(matrix.os, 'windows') && matrix.ruby == 'jruby'
|
||||
if: startsWith(matrix.os, 'windows') && startsWith(matrix.ruby, 'jruby')
|
||||
run: gem install sassc
|
||||
|
||||
testDotRubyVersion:
|
||||
@@ -403,19 +402,6 @@ jobs:
|
||||
bundler-cache: true
|
||||
- run: bundle exec rails --version
|
||||
|
||||
testTruffleRubyNokogiri:
|
||||
name: "Test installing a Gemfile with nokogiri on TruffleRuby"
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/nokogiri.gemfile
|
||||
steps:
|
||||
- uses: actions/checkout@v5
|
||||
- uses: ./
|
||||
with:
|
||||
ruby-version: truffleruby-head
|
||||
bundler-cache: true
|
||||
- run: bundle list | grep nokogiri
|
||||
|
||||
testWindowsToolchain:
|
||||
name: "Test windows-toolchain: none"
|
||||
runs-on: windows-latest
|
||||
|
||||
@@ -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.5.0-preview1, head, debug, mingw, mswin, ucrt |
|
||||
| `jruby` | 9.1.17.0 - 10.0.2.0, head |
|
||||
| `truffleruby` | 19.3.0 - 24.2.1, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 24.2.1, head |
|
||||
| `truffleruby` | 19.3.0 - 25.0.0, head |
|
||||
| `truffleruby+graalvm` | 21.2.0 - 25.0.0, head |
|
||||
|
||||
`ruby-debug` is the same as `ruby-head` but with assertions enabled (`-DRUBY_DEBUG=1`).
|
||||
|
||||
@@ -76,7 +76,7 @@ jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: '3.4' # Not needed with a .ruby-version, .tool-versions or mise.toml
|
||||
@@ -101,7 +101,7 @@ jobs:
|
||||
ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', '3.4', head, jruby, jruby-head, truffleruby, truffleruby-head]
|
||||
runs-on: ${{ matrix.os }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: ${{ matrix.ruby }}
|
||||
@@ -124,7 +124,7 @@ jobs:
|
||||
env: # $BUNDLE_GEMFILE must be set at the job level, so it is set for all steps
|
||||
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/checkout@v5
|
||||
- uses: ruby/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: '3.4'
|
||||
|
||||
+2
-11
@@ -48,16 +48,6 @@ function readBundledWithFromGemfileLock(lockFile) {
|
||||
return null
|
||||
}
|
||||
|
||||
async function afterLockFile(lockFile, platform, engine, rubyVersion) {
|
||||
if (engine.startsWith('truffleruby') && common.floatVersion(rubyVersion) < 21.1 && platform.startsWith('ubuntu-')) {
|
||||
const contents = fs.readFileSync(lockFile, 'utf8')
|
||||
if (contents.includes('nokogiri')) {
|
||||
await common.measure('Installing libxml2-dev libxslt-dev, required to install nokogiri on TruffleRuby < 21.1', async () =>
|
||||
exec.exec('sudo', ['apt-get', '-yqq', 'install', 'libxml2-dev', 'libxslt-dev'], { silent: true }))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export async function installBundler(bundlerVersionInput, rubygemsInputSet, lockFile, platform, rubyPrefix, engine, rubyVersion) {
|
||||
let bundlerVersion = bundlerVersionInput
|
||||
|
||||
@@ -175,7 +165,8 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
|
||||
await exec.exec('bundle', ['lock'], envOptions)
|
||||
}
|
||||
|
||||
await afterLockFile(lockFile, platform, engine, rubyVersion)
|
||||
await core.group(`Print lockfile`, async () =>
|
||||
await exec.exec('cat', [lockFile]))
|
||||
|
||||
// cache key
|
||||
const paths = [cachePath]
|
||||
|
||||
+11
-38
File diff suppressed because one or more lines are too long
@@ -1,3 +0,0 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "nokogiri"
|
||||
@@ -99,11 +99,6 @@ export async function setupRuby(options = {}) {
|
||||
if (inputs['bundler-cache'] === 'true') {
|
||||
await common.time('bundle install', async () =>
|
||||
bundler.bundleInstall(gemfile, lockFile, platform, engine, version, bundlerVersion, inputs['cache-version']))
|
||||
|
||||
if (lockFile !== null && fs.existsSync(lockFile)) {
|
||||
await core.group(`Print lockfile`, async () =>
|
||||
await exec.exec('cat', [lockFile]))
|
||||
}
|
||||
}
|
||||
|
||||
core.setOutput('ruby-prefix', rubyPrefix)
|
||||
|
||||
@@ -13,7 +13,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.7",
|
||||
"3.2.0-preview1", "3.2.0-preview2", "3.2.0-preview3", "3.2.0-rc1", "3.2.0", "3.2.1", "3.2.2", "3.2.3", "3.2.4", "3.2.5", "3.2.6", "3.2.7", "3.2.8", "3.2.9",
|
||||
"3.3.0-preview1", "3.3.0-preview2", "3.3.0-preview3", "3.3.0-rc1", "3.3.0", "3.3.1", "3.3.2", "3.3.3", "3.3.4", "3.3.5", "3.3.6", "3.3.7", "3.3.8", "3.3.9",
|
||||
"3.4.0-preview1", "3.4.0-preview2", "3.4.0-rc1", "3.4.0", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5",
|
||||
"3.4.0-preview1", "3.4.0-preview2", "3.4.0-rc1", "3.4.0", "3.4.1", "3.4.2", "3.4.3", "3.4.4", "3.4.5", "3.4.6", "3.4.7",
|
||||
"3.5.0-preview1",
|
||||
"head", "debug", "asan", "3.4-asan"
|
||||
],
|
||||
@@ -21,7 +21,7 @@
|
||||
"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", "9.4.9.0", "9.4.10.0", "9.4.11.0", "9.4.12.0", "9.4.12.1", "9.4.13.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", "9.4.9.0", "9.4.10.0", "9.4.11.0", "9.4.12.0", "9.4.12.1", "9.4.13.0", "9.4.14.0",
|
||||
"10.0.0.0", "10.0.0.1", "10.0.1.0", "10.0.2.0",
|
||||
"head"
|
||||
],
|
||||
@@ -32,6 +32,7 @@
|
||||
"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", "24.1.1", "24.1.2", "24.2.0", "24.2.1",
|
||||
"25.0.0",
|
||||
"head"
|
||||
],
|
||||
"truffleruby+graalvm": [
|
||||
@@ -39,6 +40,7 @@
|
||||
"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", "24.1.1", "24.1.2", "24.2.0", "24.2.1",
|
||||
"25.0.0",
|
||||
"head"
|
||||
]
|
||||
}
|
||||
|
||||
+6
-19
@@ -8,7 +8,6 @@ const tc = require('@actions/tool-cache')
|
||||
const common = require('./common')
|
||||
const rubyBuilderVersions = require('./ruby-builder-versions')
|
||||
|
||||
const builderReleaseTag = 'toolcache'
|
||||
const releasesURL = 'https://github.com/ruby/ruby-builder/releases'
|
||||
|
||||
const windows = common.windows
|
||||
@@ -105,33 +104,21 @@ async function downloadAndExtract(platform, engine, version, rubyPrefix) {
|
||||
function getDownloadURL(platform, engine, version) {
|
||||
let builderPlatform = null
|
||||
if (platform.startsWith('windows-')) {
|
||||
if (os.arch() === 'x64') {
|
||||
builderPlatform = 'windows-latest'
|
||||
} else if (os.arch() === 'arm64') {
|
||||
builderPlatform = 'windows-arm64'
|
||||
}
|
||||
builderPlatform = `windows-${os.arch()}`
|
||||
} else if (platform.startsWith('macos-')) {
|
||||
if (os.arch() === 'x64') {
|
||||
builderPlatform = 'macos-latest'
|
||||
} else if (os.arch() === 'arm64') {
|
||||
builderPlatform = 'macos-13-arm64'
|
||||
}
|
||||
builderPlatform = `darwin-${os.arch()}`
|
||||
} else if (platform.startsWith('ubuntu-')) {
|
||||
if (os.arch() === 'x64') {
|
||||
builderPlatform = platform
|
||||
} else if (os.arch() === 'arm64') {
|
||||
builderPlatform = `${platform}-arm64`
|
||||
}
|
||||
builderPlatform = `${platform}-${os.arch()}`
|
||||
}
|
||||
|
||||
if (builderPlatform === null) {
|
||||
throw new Error(`Unknown download URL for platform ${platform}`)
|
||||
if (builderPlatform === null || !['x64', 'arm64'].includes(os.arch())) {
|
||||
throw new Error(`Unknown download URL for platform ${platform}-${os.arch()}`)
|
||||
}
|
||||
|
||||
if (common.isHeadVersion(version)) {
|
||||
return getLatestHeadBuildURL(builderPlatform, engine, version)
|
||||
} else {
|
||||
return `${releasesURL}/download/${builderReleaseTag}/${engine}-${version}-${builderPlatform}.tar.gz`
|
||||
return `${releasesURL}/download/${engine}-${version}/${engine}-${version}-${builderPlatform}.tar.gz`
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -256,6 +256,14 @@
|
||||
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
|
||||
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
|
||||
},
|
||||
"3.4.6": {
|
||||
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
|
||||
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
|
||||
},
|
||||
"3.4.7": {
|
||||
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
|
||||
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
|
||||
},
|
||||
"head": {
|
||||
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64.7z",
|
||||
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
|
||||
|
||||
@@ -256,6 +256,14 @@
|
||||
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.5-1/rubyinstaller-3.4.5-1-arm.7z",
|
||||
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.5-1/rubyinstaller-3.4.5-1-x64.7z"
|
||||
},
|
||||
"3.4.6": {
|
||||
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.6-1/rubyinstaller-3.4.6-1-arm.7z",
|
||||
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.6-1/rubyinstaller-3.4.6-1-x64.7z"
|
||||
},
|
||||
"3.4.7": {
|
||||
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.7-1/rubyinstaller-3.4.7-1-arm.7z",
|
||||
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.7-1/rubyinstaller-3.4.7-1-x64.7z"
|
||||
},
|
||||
"head": {
|
||||
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-arm.7z",
|
||||
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-x64.7z"
|
||||
|
||||
Reference in New Issue
Block a user