From 540484a3c0f308b08619664ec40bf6c371d172c3 Mon Sep 17 00:00:00 2001 From: Shizuo Fujita Date: Thu, 19 Dec 2024 11:25:10 +0900 Subject: [PATCH] Fixes the latest rubygems installation error with Ruby 3.0 If set up `rubygems: latest` in workflow, it will cause the error with Ruby 3.0 because the latest rubygems does not support Ruby 3.0. Ref. https://rubygems.org/gems/rubygems-update ### Error message ``` Updating RubyGems /opt/hostedtoolcache/Ruby/3.0.7/x64/bin/gem --version 3.2.33 Default RubyGems version is 3.2.33 Updating RubyGems to latest version /opt/hostedtoolcache/Ruby/3.0.7/x64/bin/gem update --system ERROR: Error installing rubygems-update: rubygems-update-3.6.1 requires Ruby version >= 3.1.0. The current ruby version is 3.0.7.220. ERROR: While executing gem ... (NoMethodError) undefined method `version' for nil:NilClass Updating rubygems-update Took 2.86 seconds Error: The process '/opt/hostedtoolcache/Ruby/3.0.7/x64/bin/gem' failed with exit code 1 ``` ### How to reproduce ``` uses: ruby/setup-ruby@v1 with: ruby-version: "3.0" rubygems: latest ``` --- .github/workflows/test.yml | 4 ++-- dist/index.js | 4 +++- rubygems.js | 4 +++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e7da0d2f7..d22092b3f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -190,8 +190,8 @@ jobs: fail-fast: false matrix: include: - - { ruby: '3.2', expected_rubygems_version: '3.5.3' } - - { ruby: '3.0', expected_rubygems_version: '3.5.3' } + - { ruby: '3.2', expected_rubygems_version: '3.6.1' } + - { ruby: '3.0', expected_rubygems_version: '3.5.23' } - { ruby: '2.7', expected_rubygems_version: '3.4.22' } - { ruby: '2.6', expected_rubygems_version: '3.4.22' } - { ruby: '2.5', expected_rubygems_version: '3.3.27' } diff --git a/dist/index.js b/dist/index.js index 51326ca15..1a7d60db4 100644 --- a/dist/index.js +++ b/dist/index.js @@ -65114,8 +65114,10 @@ async function rubygemsLatest(gem, platform, engine, rubyVersion) { const floatVersion = common.floatVersion(rubyVersion) if (common.isHeadVersion(rubyVersion)) { console.log('Ruby master builds use included RubyGems') - } else if (floatVersion >= 3.0) { + } else if (floatVersion >= 3.1) { await exec.exec(gem, ['update', '--system']) + } else if (floatVersion >= 3.0) { + await exec.exec(gem, ['update', '--system', '3.5.23']) } else if (floatVersion >= 2.6) { await exec.exec(gem, ['update', '--system', '3.4.22']) } else if (floatVersion >= 2.3) { diff --git a/rubygems.js b/rubygems.js index 9048b8e1e..f96cfca62 100644 --- a/rubygems.js +++ b/rubygems.js @@ -39,8 +39,10 @@ async function rubygemsLatest(gem, platform, engine, rubyVersion) { const floatVersion = common.floatVersion(rubyVersion) if (common.isHeadVersion(rubyVersion)) { console.log('Ruby master builds use included RubyGems') - } else if (floatVersion >= 3.0) { + } else if (floatVersion >= 3.1) { await exec.exec(gem, ['update', '--system']) + } else if (floatVersion >= 3.0) { + await exec.exec(gem, ['update', '--system', '3.5.23']) } else if (floatVersion >= 2.6) { await exec.exec(gem, ['update', '--system', '3.4.22']) } else if (floatVersion >= 2.3) { pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy