Compare commits

...
48 Commits
Author SHA1 Message Date
ruby-builder-bot f8d7259c7a Add ruby-3.4.8 2025-12-17 14:26:51 +01:00
Benoit Daloze ac793fdd38 When setting $JAVA_HOME also add $JAVA_HOME/bin to PATH
* See discussion in https://github.com/rake-compiler/rake-compiler/pull/247
  it is messy if that's not the case and also creates inconsistencies
  based on which Java tool/executable is used.
2025-12-13 21:06:12 +01:00
Benoit Daloze 5f8a775744 macos-13 is gone 2025-12-11 22:51:44 +01:00
dependabot[bot] 30a6546035 Bump actions/checkout from 5 to 6
Bumps [actions/checkout](https://github.com/actions/checkout) from 5 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-11 22:47:42 +01:00
Benoit Daloze d697be2f83 Account for Bundler 4
* Fixes https://github.com/ruby/setup-ruby/issues/827
2025-12-05 20:42:13 +01:00
Benoit Daloze 8aeb6ff803 Test Ruby 4.0 previews 2025-11-17 15:27:57 +01:00
ruby-builder-bot 09e84e3b9d Add ruby-4.0.0-preview2 2025-11-17 15:27:57 +01:00
Benoit Daloze d5126b9b35 exec.exec() only accepts strings 2025-10-27 12:32:05 +01:00
Benoit Daloze 274049f8cf Use os.availableParallelism() instead of os.cpus().length
* As https://nodejs.org/api/os.html#oscpus says:
  os.cpus().length should not be used to calculate the amount of parallelism available to an application. Use os.availableParallelism() for this purpose.
2025-10-27 12:32:05 +01:00
Thomas Breland a96ff531da Scale bundler install jobs with CPU count up to 8
The number of jobs should scale with the runner CPU count, up to a
point. The bottleneck becomes network / disk I/O at very large numbers,
and 8 seems like a reasonable maximum based on my experience at this
time.
2025-10-27 12:32:05 +01:00
ruby-builder-bot 4ff6f3611a Update CRuby releases on Windows 2025-10-26 13:11:41 +01:00
ruby-builder-bot 5375105c88 Add ruby-3.3.10 2025-10-26 13:11:10 +01:00
ruby-builder-bot ab177d40ee Update CRuby releases on Windows 2025-10-10 10:24:01 +02:00
ruby-builder-bot 6797dcbb9a Add ruby-3.4.7 2025-10-08 11:26:49 +02:00
Benoit Daloze a16e0e6641 Test on macos-15-intel too
* Fixes https://github.com/ruby/setup-ruby/issues/814
2025-10-03 15:02:50 +02:00
Earlopain 0481980f17 Print lockfile contents earlier
Currently, the lockfile gets printed after `bundle install` finished. This could be too late when `bundle install` fails for whatever reason.

I have a workflow that failed like this:

<details><summary>Logs</summary>
<p>

```

55s
Run ruby/setup-ruby@v1
Modifying PATH
Downloading Ruby
Extracting  Ruby
Print Ruby version
Installing Bundler
> bundle install
/opt/hostedtoolcache/Ruby/2.7.8/x64/bin/bundle config --local path /home/runner/work/rubocop/rubocop/vendor/bundle
/opt/hostedtoolcache/Ruby/2.7.8/x64/bin/bundle lock
Fetching source index from https://rubygems.org/
Network error while fetching
https://rubygems.org/quick/Marshal.4.8/asciidoctor-0.0.1.gemspec.rz (Connection
reset by peer - SSL_connect)
Error: The process '/opt/hostedtoolcache/Ruby/2.7.8/x64/bin/bundle' failed with exit code 17
Run ruby/setup-ruby@v1
Modifying PATH
Downloading Ruby
Extracting  Ruby
Print Ruby version
Installing Bundler
> bundle install
/opt/hostedtoolcache/Ruby/2.7.8/x64/bin/bundle config --local path /home/runner/work/rubocop/rubocop/vendor/bundle
/opt/hostedtoolcache/Ruby/2.7.8/x64/bin/bundle lock
Fetching source index from https://rubygems.org/
Network error while fetching
https://rubygems.org/quick/Marshal.4.8/asciidoctor-0.0.1.gemspec.rz (Connection
reset by peer - SSL_connect)
Error: The process '/opt/hostedtoolcache/Ruby/2.7.8/x64/bin/bundle' failed with exit code 17
```

</p>
</details>

It would help to print the lockfile for this I think. It fetching version 0.0.1 confused me but probably the lockfile looks ok. New output:

```
Run ./
Modifying PATH
Print Ruby version
Installing Bundler
> bundle install
/opt/hostedtoolcache/Ruby/3.2.9/x64/bin/bundle config --local path /home/runner/work/setup-ruby/setup-ruby/vendor/bundle
/opt/hostedtoolcache/Ruby/3.2.9/x64/bin/bundle lock
Fetching gem metadata from https://rubygems.org/...........
Resolving dependencies...
Writing lockfile to /home/runner/work/setup-ruby/setup-ruby/gemfiles/rails8.gemfile.lock
Print lockfile
Cache key: setup-ruby-bundler-cache-v6-ubuntu-24.04-x64-ruby-3.2.9-wd-/home/runner/work/setup-ruby/setup-ruby-with--without--only--/home/runner/work/setup-ruby/setup-ruby/gemfiles/rails8.gemfile.lock-cb69172094f71f01e5207070d9af8d465d9aa9c386ecbad22b1b6e8e43523fd2
/opt/hostedtoolcache/Ruby/3.2.9/x64/bin/bundle install --jobs 4
...
```

So it's relatively at the top and not hidden somewhere. Also removes the need to check for the lockfile again.
2025-09-22 20:15:33 +02:00
Benoit Daloze cf7216d52f Use new releases of ruby-builder per engine-version
* See https://github.com/ruby/setup-ruby/issues/810
2025-09-21 19:19:44 +02:00
ruby-builder-bot 1c58d16f1a Update CRuby releases on Windows 2025-09-21 11:13:21 +02:00
Chad Wilson 1dc7956827 Test on JRuby 9.4 as well as 10.0 2025-09-20 21:59:29 +02:00
Chad Wilson b8714f777a Revert "Skip test failing on JRuby on Windows"
This reverts commit f2f42b7848.
2025-09-20 21:59:29 +02:00
Benoit Daloze d3e13b3e37 Revert "feat: upgrade to node 24"
This reverts commit c4cd38db20.
2025-09-20 21:54:20 +02:00
Benoit Daloze 4df093a946 Revert "chore: add setup-node for lint job"
This reverts commit 866b91cc02.
2025-09-20 21:54:20 +02:00
Rui Chen 866b91cc02 chore: add setup-node for lint job
Signed-off-by: Rui Chen <rui@chenrui.dev>
2025-09-18 22:00:12 +02:00
Rui Chen c4cd38db20 feat: upgrade to node 24
Signed-off-by: Rui Chen <rui@chenrui.dev>
2025-09-18 22:00:12 +02:00
ruby-builder-bot 3fee676323 Add truffleruby-25.0.0,truffleruby+graalvm-25.0.0 2025-09-16 19:43:34 +02:00
ruby-builder-bot c61fbf19ae Add ruby-3.4.6 2025-09-16 18:33:02 +02:00
Benoit Daloze 4451173596 Remove workaround for old truffleruby version from 2021 2025-08-30 13:55:15 +02:00
Benoit Daloze 805f878062 Remove failing test 2025-08-30 13:54:52 +02:00
ruby-builder-bot ab85640192 Add jruby-9.4.14.0 2025-08-30 13:46:55 +02:00
Johnny Willemsen c2e9820886 Update README.md
Updated examples to use checkout v5
2025-08-20 22:24:30 +02:00
なつき efbf473cab Add JRuby for Windows on Arm 2025-08-20 11:11:28 +02:00
Hiroshi SHIBATA bd28d3616a Merge pull request #797 from ruby/dependabot/github_actions/actions/checkout-5
Bump actions/checkout from 4 to 5
2025-08-18 15:05:24 +09:00
dependabot[bot] 3c08d92a33 Bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-12 03:15:35 +00:00
ruby-builder-bot 829114fc20 Add jruby-10.0.2.0 2025-08-11 21:34:23 +02:00
Benoit Daloze 76da337679 Update GitHub-hosted runners link 2025-08-06 13:10:04 +02:00
Hiroshi SHIBATA 2973a4bca4 Merge pull request #794 from fkmy/update-readme
Update ruby version in `README.md`
2025-08-06 09:26:32 +09:00
Yuki Fukuma 595828d48d Update ruby version in README.md
Use current ruby version in examples.
2025-08-06 08:59:15 +09:00
Eliot Partridge 2a7b30092b Rename to isExactCacheKeyMatch 2025-07-29 22:24:35 +02:00
Eliot Partridge 78876b7c88 Use case-insensitive key comparsion for cache keys 2025-07-29 22:24:35 +02:00
dependabot[bot] 3ec1ec0529 Bump brace-expansion from 1.1.11 to 1.1.12
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.11 to 1.1.12.
- [Release notes](https://github.com/juliangruber/brace-expansion/releases)
- [Commits](https://github.com/juliangruber/brace-expansion/compare/1.1.11...v1.1.12)

---
updated-dependencies:
- dependency-name: brace-expansion
  dependency-version: 1.1.12
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-29 22:02:39 +02:00
dependabot[bot] 45dc484f8a Bump form-data from 2.5.3 to 2.5.5
Bumps [form-data](https://github.com/form-data/form-data) from 2.5.3 to 2.5.5.
- [Release notes](https://github.com/form-data/form-data/releases)
- [Changelog](https://github.com/form-data/form-data/blob/v2.5.5/CHANGELOG.md)
- [Commits](https://github.com/form-data/form-data/compare/v2.5.3...v2.5.5)

---
updated-dependencies:
- dependency-name: form-data
  dependency-version: 2.5.5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-29 22:00:25 +02:00
Benoit Daloze bb6434c747 Add non-null check 2025-07-26 10:58:48 +02:00
Jason Frey ba9e71c195 Add printing of the lockfile after installation
Closes #783
2025-07-26 10:58:48 +02:00
Benoit Daloze 0ecad18fe5 Revert "Add printing of the lockfile after installation"
This reverts commit e8621f0b86.
2025-07-25 22:09:19 +02:00
Jason Frey e8621f0b86 Add printing of the lockfile after installation
Closes #783
2025-07-25 20:36:32 +02:00
Benoit Daloze bd6859cc58 Use core.group() instead of startGroup/endGroup 2025-07-25 20:25:02 +02:00
ruby-builder-bot 223e443f3e Update CRuby releases on Windows 2025-07-25 20:14:52 +02:00
ruby-builder-bot 65937904bc Add ruby-3.2.9,ruby-3.3.9 2025-07-24 21:16:37 +02:00
14 changed files with 324 additions and 226 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ jobs:
GH_TOKEN: ${{ github.token }}
GH_REPO: ${{ github.repository }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: ./
+39 -40
View File
@@ -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-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,
'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', '4.0', ruby-head,
jruby-9.4, jruby, jruby-head,
truffleruby, truffleruby-head,
truffleruby+graalvm, truffleruby+graalvm-head
]
@@ -75,13 +75,14 @@ jobs:
- { os: windows-11-arm, ruby: '3.1' }
- { os: windows-11-arm, ruby: '3.2' }
- { os: windows-11-arm, ruby: '3.3' }
# https://github.com/ruby/jruby-dev-builder/pull/14#issuecomment-2829841247
- { os: windows-11-arm, ruby: jruby }
- { os: windows-11-arm, ruby: jruby-head }
# RubyInstaller has no 64-bit builds of 1.9 on Windows
- { os: windows-2022, ruby: '1.9' }
- { os: windows-2025, ruby: '1.9' }
- { os: windows-11-arm, ruby: '1.9' }
# No preview builds on Windows
- { os: windows-2022, ruby: '4.0' }
- { os: windows-2025, ruby: '4.0' }
- { os: windows-11-arm, ruby: '4.0' }
# TruffleRuby does not support Windows
- { os: windows-2022, ruby: truffleruby }
- { os: windows-2025, ruby: truffleruby }
@@ -99,7 +100,7 @@ jobs:
name: ${{ matrix.os }} ${{ matrix.ruby }}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
@@ -198,15 +199,14 @@ 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:
name: "Test .ruby-version"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: echo "ruby-3.4.0" > .ruby-version
- uses: ./
- run: ruby -v | grep -F "ruby 3.4.0"
@@ -215,7 +215,7 @@ jobs:
name: "Test .tool-versions"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: echo -e "nodejs 16.0.0\nruby 3.4.0" > .tool-versions
- uses: ./
- run: ruby -v | grep -F "ruby 3.4.0"
@@ -224,7 +224,7 @@ jobs:
name: "Test mise.toml"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: echo -e "[tools]\nnode = '18'\nruby = '3.4.0'" > mise.toml
- uses: ./
- run: ruby -v | grep -F "ruby 3.4.0"
@@ -233,13 +233,25 @@ jobs:
name: "Test with no Gemfile"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: rm Gemfile
- uses: ./
with:
ruby-version: '2.6'
- run: ruby -v
testNoGemfileWithBundlerCache:
name: "Test with no Gemfile but with bundler-cache"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- run: rm Gemfile
- uses: ./
with:
ruby-version: '2.6'
bundler-cache: true
- run: ruby -v
testLatestRubygemsVersion:
name: "Test rubygems: latest on ${{ matrix.ruby }}"
runs-on: ubuntu-latest
@@ -255,7 +267,7 @@ jobs:
- { ruby: '2.3', expected_rubygems_version: '3.3.27' }
- { ruby: '2.0', expected_rubygems_version: '2.7.11' }
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: ${{ matrix.ruby }}
@@ -266,7 +278,7 @@ jobs:
name: "Test rubygems: version upgrades RubyGems to that version if the default is older"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.6'
@@ -277,7 +289,7 @@ jobs:
name: "Test rubygems: version noops if the default is newer"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '3.1.0'
@@ -288,7 +300,7 @@ jobs:
name: "Test rubygems: version uses the Bundler installed by the rubygems update"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '3.1.0'
@@ -300,7 +312,7 @@ jobs:
name: "Test bundler: 1.x for old Ruby"
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.3'
@@ -311,7 +323,7 @@ jobs:
name: "Test with a major Bundler version"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.6'
@@ -322,7 +334,7 @@ jobs:
name: "Test with a minor Bundler version"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.6'
@@ -333,7 +345,7 @@ jobs:
name: "Test with an exact Bundler version"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.6'
@@ -344,7 +356,7 @@ jobs:
name: "Test with a Bundler pre/rc version"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.6'
@@ -357,7 +369,7 @@ jobs:
env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler-dev.gemfile
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: ruby-head
@@ -369,7 +381,7 @@ jobs:
env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/bundler1.gemfile
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.7'
@@ -387,31 +399,18 @@ jobs:
env:
BUNDLE_GEMFILE: ${{ github.workspace }}/gemfiles/${{ matrix.gemfile }}.gemfile
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '3.2'
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@v4
- uses: ./
with:
ruby-version: truffleruby-head
bundler-cache: true
- run: bundle list | grep nokogiri
testWindowsToolchain:
name: "Test windows-toolchain: none"
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: ./
with:
ruby-version: '2.7'
@@ -423,7 +422,7 @@ jobs:
lint:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- run: yarn install
- run: yarn run package
- name: Check generated files are up to date
+1 -1
View File
@@ -9,7 +9,7 @@ jobs:
update_branch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-depth: 0
- run: git push origin HEAD:v1
+12 -12
View File
@@ -15,10 +15,10 @@ This action currently supports these versions of MRI, JRuby and TruffleRuby:
| Interpreter | Versions |
| ----------- | -------- |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 3.5.0-preview1, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 10.0.1.0, head |
| `truffleruby` | 19.3.0 - 24.2.1, head |
| `truffleruby+graalvm` | 21.2.0 - 24.2.1, head |
| `ruby` | 1.9.3, 2.0.0, 2.1.9, 2.2, all versions from 2.3.0 until 4.0.0-preview2, head, debug, mingw, mswin, ucrt |
| `jruby` | 9.1.17.0 - 10.0.2.0, 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`).
@@ -45,12 +45,12 @@ which means Ruby ≤ 2.4 is unmaintained and considered insecure.
### Supported Platforms
The action works on these [GitHub-hosted runners](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources) images. Runner images not listed below are not supported yet. `$OS-latest` just alias to one of these images.
The action works on these [GitHub-hosted runners](https://docs.github.com/en/actions/reference/runners/github-hosted-runners) images. Runner images not listed below are not supported yet. `$OS-latest` just alias to one of these images.
| Operating System | Supported |
| ---------------- | --------- |
| Ubuntu | `ubuntu-22.04`, `ubuntu-24.04`, `ubuntu-22.04-arm`, `ubuntu-24.04-arm` |
| macOS | `macos-13` and newer versions |
| macOS | `macos-14` and newer versions |
| Windows | `windows-2022`, `windows-2025`, `windows-11-arm` |
Not all combinations of runner images and versions are supported.
@@ -76,10 +76,10 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.3' # Not needed with a .ruby-version, .tool-versions or mise.toml
ruby-version: '3.4' # Not needed with a .ruby-version, .tool-versions or mise.toml
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- run: bundle exec rake
```
@@ -98,10 +98,10 @@ jobs:
matrix:
os: [ubuntu-latest, macos-latest]
# Due to https://github.com/actions/runner/issues/849, we have to use quotes for '3.0'
ruby: ['2.7', '3.0', '3.1', '3.2', '3.3', head, jruby, jruby-head, truffleruby, truffleruby-head]
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,10 +124,10 @@ 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.3'
ruby-version: '3.4'
bundler-cache: true # runs 'bundle install' and caches installed gems automatically
- run: bundle exec rake
```
+42 -30
View File
@@ -1,4 +1,5 @@
const fs = require('fs')
const os = require('os')
const path = require('path')
const core = require('@actions/core')
const exec = require('@actions/exec')
@@ -48,16 +49,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
@@ -76,17 +67,15 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
}
}
const floatVersion = common.floatVersion(rubyVersion)
if (bundlerVersion === 'default') {
if (common.isBundler2dot2Default(engine, rubyVersion)) {
if (common.isBundler2dot2PlusDefault(engine, rubyVersion)) {
if (common.windows && engine === 'ruby' && (common.isStableVersion(engine, rubyVersion) || rubyVersion === 'head')) {
// https://github.com/ruby/setup-ruby/issues/371
console.log(`Installing latest Bundler for ${engine}-${rubyVersion} on Windows because bin/bundle does not work in bash otherwise`)
bundlerVersion = 'latest'
} else {
console.log(`Using Bundler 2 shipped with ${engine}-${rubyVersion}`)
return '2'
console.log(`Using Bundler shipped with ${engine}-${rubyVersion}`)
return common.isBundler4PlusDefault(engine, rubyVersion) ? '4' : '2'
}
} else if (common.hasBundlerDefaultGem(engine, rubyVersion)) {
// Those Rubies have a old Bundler default gem < 2.2 which does not work well for `gem 'foo', github: 'foo/foo'`:
@@ -99,8 +88,15 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
}
}
const targetRubyVersion = common.targetRubyVersion(engine, rubyVersion)
if (bundlerVersion === 'latest') {
bundlerVersion = '2'
// Bundler 4 requires Ruby 3.2+
if (targetRubyVersion < 3.2) {
bundlerVersion = '2'
} else {
bundlerVersion = '4'
}
}
if (isValidBundlerVersion(bundlerVersion)) {
@@ -109,24 +105,29 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
throw new Error(`Cannot parse bundler input: ${bundlerVersion}`)
}
// Use Bundler 1 when we know Bundler 2 does not work
if (bundlerVersion.startsWith('2')) {
if (engine === 'ruby' && floatVersion <= 2.2) {
console.log('Bundler 2 requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2')
// Only use Bundler 4 on Ruby 3.2+
if (common.floatVersion(bundlerVersion) >= 4 && targetRubyVersion < 3.2) {
console.log('Bundler 4 requires Ruby 3.2+, using Bundler 2 instead on Ruby < 3.2')
bundlerVersion = '2'
}
// Use Bundler 1 when we know Bundler 2+ does not work
if (common.floatVersion(bundlerVersion) >= 2) {
if (engine === 'ruby' && targetRubyVersion <= 2.2) {
console.log(`Bundler 2+ requires Ruby 2.3+, using Bundler 1 on Ruby <= 2.2`)
bundlerVersion = '1'
} else if (engine === 'ruby' && /^2\.3\.[01]/.test(rubyVersion)) {
console.log('Ruby 2.3.0 and 2.3.1 have shipped with an old rubygems that only works with Bundler 1')
bundlerVersion = '1'
} else if (engine === 'jruby' && rubyVersion.startsWith('9.1')) { // JRuby 9.1 targets Ruby 2.3, treat it the same
console.log('JRuby 9.1 has a bug with Bundler 2 (https://github.com/ruby/setup-ruby/issues/108), using Bundler 1 instead on JRuby 9.1')
console.log('JRuby 9.1 has a bug with Bundler 2+ (https://github.com/ruby/setup-ruby/issues/108), using Bundler 1 instead on JRuby 9.1')
bundlerVersion = '1'
}
}
const targetRubyVersion = common.targetRubyVersion(engine, rubyVersion)
// Use Bundler 2.3 when we use Ruby 2.3.2 - 2.5
// Use Bundler 2.4 when we use Ruby 2.6-2.7
if (bundlerVersion == '2') {
if (bundlerVersion === '2') {
if (targetRubyVersion <= 2.5) { // < 2.3.2 already handled above
console.log('Ruby 2.3.2 - 2.5 only works with Bundler 2.3')
bundlerVersion = '2.3'
@@ -146,6 +147,14 @@ export async function installBundler(bundlerVersionInput, rubygemsInputSet, lock
return bundlerVersion
}
function bundlerConfigSetArgs(bundlerVersion, key, value) {
if (bundlerVersion.startsWith('1')) {
return ['config', '--local', key, value]
} else {
return ['config', 'set', '--local', key, value]
}
}
export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVersion, bundlerVersion, cacheVersion) {
if (gemfile === null) {
console.log('Could not determine gemfile path, skipping "bundle install" and caching')
@@ -153,8 +162,8 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
}
let envOptions = {}
if (bundlerVersion.startsWith('1') && common.isBundler2Default(engine, rubyVersion)) {
// If Bundler 1 is specified on Rubies which ship with Bundler 2,
if (bundlerVersion.startsWith('1') && common.isBundler2PlusDefault(engine, rubyVersion)) {
// If Bundler 1 is specified on Rubies which ship with Bundler 2+,
// we need to specify which Bundler version to use explicitly until the lockfile exists.
console.log(`Setting BUNDLER_VERSION=${bundlerVersion} for "bundle config|lock" commands below to ensure Bundler 1 is used`)
envOptions = { env: { ...process.env, BUNDLER_VERSION: bundlerVersion } }
@@ -165,17 +174,18 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
// An absolute path, so it is reliably under $PWD/vendor/bundle, and not relative to the gemfile's directory
const bundleCachePath = path.join(process.cwd(), cachePath)
await exec.exec('bundle', ['config', '--local', 'path', bundleCachePath], envOptions)
await exec.exec('bundle', bundlerConfigSetArgs(bundlerVersion, 'path', bundleCachePath), envOptions)
if (fs.existsSync(lockFile)) {
await exec.exec('bundle', ['config', '--local', 'deployment', 'true'], envOptions)
await exec.exec('bundle', bundlerConfigSetArgs(bundlerVersion, 'deployment', 'true'), envOptions)
} else {
// Generate the lockfile so we can use it to compute the cache key.
// This will also automatically pick up the latest gem versions compatible with the Gemfile.
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]
@@ -202,11 +212,13 @@ export async function bundleInstall(gemfile, lockFile, platform, engine, rubyVer
console.log(`Found cache for key: ${cachedKey}`)
}
// Number of jobs should scale with runner, up to a point
const jobs = Math.min(os.availableParallelism(), 8)
// Always run 'bundle install' to list the gems
await exec.exec('bundle', ['install', '--jobs', '4'])
await exec.exec('bundle', ['install', '--jobs', `${jobs}`])
// @actions/cache only allows to save for non-existing keys
if (cachedKey !== key) {
if (!common.isExactCacheKeyMatch(key, cachedKey)) {
if (cachedKey) { // existing cache but Gemfile.lock differs, clean old gems
await exec.exec('bundle', ['clean'])
}
+52 -24
View File
@@ -13,6 +13,7 @@ const linuxOSInfo = require('linux-os-info')
export const windows = (os.platform() === 'win32')
// Extract to SSD on Windows, see https://github.com/ruby/setup-ruby/pull/14
export const drive = (windows ? (process.env['RUNNER_TEMP'] || 'C')[0] : undefined)
const PATH_ENV_VAR = windows ? 'Path' : 'PATH'
export const inputs = {
selfHosted: undefined
@@ -80,7 +81,7 @@ export function isStableVersion(engine, rubyVersion) {
}
export function hasBundlerDefaultGem(engine, rubyVersion) {
return isBundler1Default(engine, rubyVersion) || isBundler2Default(engine, rubyVersion)
return isBundler1Default(engine, rubyVersion) || isBundler2PlusDefault(engine, rubyVersion)
}
export function isBundler1Default(engine, rubyVersion) {
@@ -95,7 +96,7 @@ export function isBundler1Default(engine, rubyVersion) {
}
}
export function isBundler2Default(engine, rubyVersion) {
export function isBundler2PlusDefault(engine, rubyVersion) {
if (engine === 'ruby') {
return floatVersion(rubyVersion) >= 2.7
} else if (engine.startsWith('truffleruby')) {
@@ -107,7 +108,7 @@ export function isBundler2Default(engine, rubyVersion) {
}
}
export function isBundler2dot2Default(engine, rubyVersion) {
export function isBundler2dot2PlusDefault(engine, rubyVersion) {
if (engine === 'ruby') {
return floatVersion(rubyVersion) >= 3.0
} else if (engine.startsWith('truffleruby')) {
@@ -119,6 +120,13 @@ export function isBundler2dot2Default(engine, rubyVersion) {
}
}
const UNKNOWN_TARGET_RUBY_VERSION = 9.9
export function isBundler4PlusDefault(engine, rubyVersion) {
const version = targetRubyVersion(engine, rubyVersion)
return version != UNKNOWN_TARGET_RUBY_VERSION && version >= 4.0
}
export function targetRubyVersion(engine, rubyVersion) {
const version = floatVersion(rubyVersion)
if (engine === 'ruby') {
@@ -132,6 +140,8 @@ export function targetRubyVersion(engine, rubyVersion) {
return 2.6
} else if (version === 9.4) {
return 3.1
} else if (version === 10.0) {
return 3.4
}
} else if (engine.startsWith('truffleruby')) {
if (version < 21.0) {
@@ -147,11 +157,11 @@ export function targetRubyVersion(engine, rubyVersion) {
}
}
return 9.9 // unknown, assume recent
return UNKNOWN_TARGET_RUBY_VERSION // unknown, assume recent
}
export function floatVersion(rubyVersion) {
const match = rubyVersion.match(/^\d+\.\d+/)
const match = rubyVersion.match(/^\d+(\.\d+|$)/)
if (match) {
return parseFloat(match[0])
} else if (isHeadVersion(rubyVersion)) {
@@ -356,28 +366,26 @@ export function win2nix(path) {
}
export function setupPath(newPathEntries) {
const envPath = windows ? 'Path' : 'PATH'
const originalPath = process.env[envPath].split(path.delimiter)
const originalPath = process.env[PATH_ENV_VAR].split(path.delimiter)
let cleanPath = originalPath.filter(entry => !/\bruby\b/i.test(entry))
core.startGroup(`Modifying ${envPath}`)
// First remove the conflicting path entries
if (cleanPath.length !== originalPath.length) {
console.log(`Entries removed from ${envPath} to avoid conflicts with default Ruby:`)
for (const entry of originalPath) {
if (!cleanPath.includes(entry)) {
console.log(` ${entry}`)
core.group(`Modifying ${PATH_ENV_VAR}`, async () => {
// First remove the conflicting path entries
if (cleanPath.length !== originalPath.length) {
console.log(`Entries removed from ${PATH_ENV_VAR} to avoid conflicts with default Ruby:`)
for (const entry of originalPath) {
if (!cleanPath.includes(entry)) {
console.log(` ${entry}`)
}
}
core.exportVariable(PATH_ENV_VAR, cleanPath.join(path.delimiter))
}
core.exportVariable(envPath, cleanPath.join(path.delimiter))
}
console.log(`Entries added to ${envPath} to use selected Ruby:`)
for (const entry of newPathEntries) {
console.log(` ${entry}`)
}
core.endGroup()
console.log(`Entries added to ${PATH_ENV_VAR} to use selected Ruby:`)
for (const entry of newPathEntries) {
console.log(` ${entry}`)
}
})
core.addPath(newPathEntries.join(path.delimiter))
}
@@ -396,20 +404,40 @@ export async function setupJavaHome(rubyPrefix) {
console.log("JRuby failed to start, try Java 21 envs")
let arch = os.arch()
if (arch === "x64" || os.platform() !== "darwin") {
if (arch === "arm64" && os.platform() === "win32") {
arch = "AARCH64"
} else if (arch === "x64" || os.platform() !== "darwin") {
arch = "X64"
}
// JAVA_HOME_21_AARCH64 - https://github.com/actions/partner-runner-images/blob/main/images/arm-windows-11-image.md#java
// JAVA_HOME_21_arm64 - https://github.com/actions/runner-images/blob/main/images/macos/macos-15-arm64-Readme.md#java
// JAVA_HOME_21_X64 - https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2404-Readme.md#java
let newHomeVar = `JAVA_HOME_21_${arch}`
let newHome = process.env[newHomeVar]
let bin = path.join(newHome, 'bin')
if (newHome === "undefined") {
throw new Error(`JAVA_HOME is not Java 21+ needed for JRuby and \$${newHomeVar} is not defined`)
}
console.log(`Setting JAVA_HOME to ${newHomeVar} path ${newHome}`)
core.exportVariable("JAVA_HOME", newHome)
console.log(`Adding ${bin} to ${PATH_ENV_VAR}`)
core.addPath(bin)
}
})
}
// Determines if two keys are an exact match for the purposes of cache matching
// Specifically, this is a case-insensitive match that ignores accents
// From actions/cache@v3 src/utils/actionUtils.ts (MIT)
export function isExactCacheKeyMatch(key, cacheKey) {
return !!(
cacheKey &&
cacheKey.localeCompare(key, undefined, {
sensitivity: 'accent'
}) === 0
);
}
Generated Vendored
+111 -82
View File
File diff suppressed because one or more lines are too long
-3
View File
@@ -1,3 +0,0 @@
source "https://rubygems.org"
gem "nokogiri"
+3 -3
View File
@@ -175,7 +175,7 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
// Well known version-platform combinations which do not work:
if (engine === 'ruby' && platform.startsWith('macos') && os.arch() === 'arm64' && common.floatVersion(version) < 2.6) {
throw new Error(`CRuby < 2.6 does not support macos-arm64.
Either use a newer Ruby version or use a macOS image running on amd64, e.g., macos-13.
Either use a newer Ruby version or use a macOS image running on amd64, e.g., macos-15-intel.
Note that GitHub changed the meaning of macos-latest from macos-12 (amd64) to macos-14 (arm64):
https://github.blog/changelog/2024-04-01-macos-14-sonoma-is-generally-available-and-the-latest-macos-runner-image/
@@ -188,8 +188,8 @@ function validateRubyEngineAndVersion(platform, engineVersions, engine, parsedVe
- { os: macos-latest, ruby: '2.4' }
- { os: macos-latest, ruby: '2.5' }
include:
- { os: macos-13, ruby: '2.4' }
- { os: macos-13, ruby: '2.5' }
- { os: macos-15-intel, ruby: '2.4' }
- { os: macos-15-intel, 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.`)
} else if (engine === 'truffleruby' && platform.startsWith('windows')) {
+8 -5
View File
@@ -11,18 +11,19 @@
"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.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.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.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.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.3.10",
"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.4.8",
"3.5.0-preview1",
"4.0.0-preview2",
"head", "debug", "asan", "3.4-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", "9.4.9.0", "9.4.10.0", "9.4.11.0", "9.4.12.0", "9.4.12.1", "9.4.13.0",
"10.0.0.0", "10.0.0.1", "10.0.1.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"
],
"truffleruby": [
@@ -32,6 +33,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 +41,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
View File
@@ -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`
}
}
+21
View File
@@ -203,6 +203,9 @@
"3.2.8": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
},
"3.2.9": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"3.3.0": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
},
@@ -230,6 +233,12 @@
"3.3.8": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
},
"3.3.9": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"3.3.10": {
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64.7z"
},
"3.4.1": {
"arm64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-clangarm64-mingw-w64@r688.7z",
"x64": "https://github.com/ruby/setup-msys2-gcc/releases/latest/download/msys2-ucrt64-mingw-w64@r688-gcc@14.7z"
@@ -246,6 +255,18 @@
"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.5": {
"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"
+21
View File
@@ -203,6 +203,9 @@
"3.2.8": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.8-1/rubyinstaller-3.2.8-1-x64.7z"
},
"3.2.9": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.2.9-1/rubyinstaller-3.2.9-1-x64.7z"
},
"3.3.0": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.0-1/rubyinstaller-3.3.0-1-x64.7z"
},
@@ -230,6 +233,12 @@
"3.3.8": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.8-1/rubyinstaller-3.3.8-1-x64.7z"
},
"3.3.9": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.9-1/rubyinstaller-3.3.9-1-x64.7z"
},
"3.3.10": {
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.3.10-1/rubyinstaller-3.3.10-1-x64.7z"
},
"3.4.1": {
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.1-2/rubyinstaller-3.4.1-2-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.1-2/rubyinstaller-3.4.1-2-x64.7z"
@@ -246,6 +255,18 @@
"arm64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.4-2/rubyinstaller-3.4.4-2-arm.7z",
"x64": "https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-3.4.4-2/rubyinstaller-3.4.4-2-x64.7z"
},
"3.4.5": {
"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"
Generated
+7 -6
View File
@@ -283,9 +283,9 @@ balanced-match@^1.0.0:
integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
version "1.1.12"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
dependencies:
balanced-match "^1.0.0"
concat-map "0.0.1"
@@ -376,13 +376,14 @@ fast-xml-parser@^5.0.7:
strnum "^2.1.0"
form-data@^2.5.0:
version "2.5.3"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.3.tgz#f9bcf87418ce748513c0c3494bb48ec270c97acc"
integrity sha512-XHIrMD0NpDrNM/Ckf7XJiBbLl57KEhT3+i3yY+eWm+cqYZJQTZrKo8Y8AWKnuV5GT4scfuUGt9LzNoIx3dU1nQ==
version "2.5.5"
resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.5.5.tgz#a5f6364ad7e4e67e95b4a07e2d8c6f711c74f624"
integrity sha512-jqdObeR2rxZZbPSGL+3VckHMYtu+f9//KXBsVny6JSX/pa38Fy+bGjuG8eW/H6USNQWhLi8Num++cU2yOCNz4A==
dependencies:
asynckit "^0.4.0"
combined-stream "^1.0.8"
es-set-tostringtag "^2.1.0"
hasown "^2.0.2"
mime-types "^2.1.35"
safe-buffer "^5.2.1"