Add a new input to optionally update RubyGems
This commit is contained in:
committed by
Benoit Daloze
parent
180e1d1f1c
commit
c3f0cb18af
@@ -112,6 +112,28 @@ jobs:
|
|||||||
if: startsWith(matrix.os, 'windows') && startsWith(matrix.ruby, 'jruby')
|
if: startsWith(matrix.os, 'windows') && startsWith(matrix.ruby, 'jruby')
|
||||||
run: gem install sassc
|
run: gem install sassc
|
||||||
|
|
||||||
|
testLatestRubygemsVersion:
|
||||||
|
name: "Test rubygems input set to latest upgrades the default RubyGems version"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6
|
||||||
|
rubygems: latest
|
||||||
|
- run: ruby -e "exit(Gem.rubygems_version > Gem::Version.new('3.0.3'))"
|
||||||
|
|
||||||
|
testFixedRubygemsVersion:
|
||||||
|
name: "Test rubygems input set to a fixed version upgrades RubyGems to that versoin"
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: ./
|
||||||
|
with:
|
||||||
|
ruby-version: 2.6
|
||||||
|
rubygems: 3.3.5
|
||||||
|
- run: gem --version | grep -F "3.3.5"
|
||||||
|
|
||||||
testExactBundlerVersion:
|
testExactBundlerVersion:
|
||||||
name: "Test with an exact Bundler version"
|
name: "Test with an exact Bundler version"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -9,6 +9,13 @@ inputs:
|
|||||||
description: 'Engine and version to use, see the syntax in the README. Reads from .ruby-version or .tool-versions if unset.'
|
description: 'Engine and version to use, see the syntax in the README. Reads from .ruby-version or .tool-versions if unset.'
|
||||||
required: false
|
required: false
|
||||||
default: 'default'
|
default: 'default'
|
||||||
|
rubygems:
|
||||||
|
description: |
|
||||||
|
The version of RubyGems to use. Either 'default', 'latest', or a version number (e.g., 3.3.5).
|
||||||
|
For 'default', no action is taken and the version of RubyGems that comes with Ruby by default is used.
|
||||||
|
For 'latest', `gem update --system` is run to update to the latest RubyGems version.
|
||||||
|
Similarly, if a version number is given, `gem update --system <version>` is run to update to that version of RubyGems.
|
||||||
|
Defaults to 'default'.
|
||||||
bundler:
|
bundler:
|
||||||
description: |
|
description: |
|
||||||
The version of Bundler to install. Either 'none', 'latest', 'Gemfile.lock', or a version number (e.g., 1, 2, 2.1.4).
|
The version of Bundler to install. Either 'none', 'latest', 'Gemfile.lock', or a version number (e.g., 1, 2, 2.1.4).
|
||||||
|
|||||||
+30
@@ -58953,6 +58953,29 @@ function getLatestHeadBuildURL(platform, engine, version) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 160:
|
||||||
|
/***/ ((__unused_webpack_module, __webpack_exports__, __nccwpck_require__) => {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
__nccwpck_require__.r(__webpack_exports__);
|
||||||
|
/* harmony export */ __nccwpck_require__.d(__webpack_exports__, {
|
||||||
|
/* harmony export */ "rubygemsUpdate": () => (/* binding */ rubygemsUpdate)
|
||||||
|
/* harmony export */ });
|
||||||
|
const path = __nccwpck_require__(5622)
|
||||||
|
const exec = __nccwpck_require__(1514)
|
||||||
|
|
||||||
|
async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
||||||
|
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
||||||
|
const rubygemsVersion = (rubygemsVersionInput === 'latest') ? [] : [rubygemsVersionInput]
|
||||||
|
|
||||||
|
await exec.exec(gem, ['update', '--system', ...rubygemsVersion])
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 7223:
|
/***/ 7223:
|
||||||
@@ -59566,12 +59589,14 @@ const fs = __nccwpck_require__(5747)
|
|||||||
const path = __nccwpck_require__(5622)
|
const path = __nccwpck_require__(5622)
|
||||||
const core = __nccwpck_require__(2186)
|
const core = __nccwpck_require__(2186)
|
||||||
const common = __nccwpck_require__(4717)
|
const common = __nccwpck_require__(4717)
|
||||||
|
const rubygems = __nccwpck_require__(160)
|
||||||
const bundler = __nccwpck_require__(1641)
|
const bundler = __nccwpck_require__(1641)
|
||||||
|
|
||||||
const windows = common.windows
|
const windows = common.windows
|
||||||
|
|
||||||
const inputDefaults = {
|
const inputDefaults = {
|
||||||
'ruby-version': 'default',
|
'ruby-version': 'default',
|
||||||
|
'rubygems': 'default',
|
||||||
'bundler': 'default',
|
'bundler': 'default',
|
||||||
'bundler-cache': 'true',
|
'bundler-cache': 'true',
|
||||||
'working-directory': '.',
|
'working-directory': '.',
|
||||||
@@ -59623,6 +59648,11 @@ async function setupRuby(options = {}) {
|
|||||||
|
|
||||||
const rubyPrefix = await installer.install(platform, engine, version)
|
const rubyPrefix = await installer.install(platform, engine, version)
|
||||||
|
|
||||||
|
if (inputs['rubygems'] !== 'default') {
|
||||||
|
await common.measure('Updating RubyGems', async () =>
|
||||||
|
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix))
|
||||||
|
}
|
||||||
|
|
||||||
// When setup-ruby is used by other actions, this allows code in them to run
|
// When setup-ruby is used by other actions, this allows code in them to run
|
||||||
// before 'bundle install'. Installed dependencies may require additional
|
// before 'bundle install'. Installed dependencies may require additional
|
||||||
// libraries & headers, build tools, etc.
|
// libraries & headers, build tools, etc.
|
||||||
|
|||||||
@@ -3,12 +3,14 @@ const fs = require('fs')
|
|||||||
const path = require('path')
|
const path = require('path')
|
||||||
const core = require('@actions/core')
|
const core = require('@actions/core')
|
||||||
const common = require('./common')
|
const common = require('./common')
|
||||||
|
const rubygems = require('./rubygems')
|
||||||
const bundler = require('./bundler')
|
const bundler = require('./bundler')
|
||||||
|
|
||||||
const windows = common.windows
|
const windows = common.windows
|
||||||
|
|
||||||
const inputDefaults = {
|
const inputDefaults = {
|
||||||
'ruby-version': 'default',
|
'ruby-version': 'default',
|
||||||
|
'rubygems': 'default',
|
||||||
'bundler': 'default',
|
'bundler': 'default',
|
||||||
'bundler-cache': 'true',
|
'bundler-cache': 'true',
|
||||||
'working-directory': '.',
|
'working-directory': '.',
|
||||||
@@ -60,6 +62,11 @@ export async function setupRuby(options = {}) {
|
|||||||
|
|
||||||
const rubyPrefix = await installer.install(platform, engine, version)
|
const rubyPrefix = await installer.install(platform, engine, version)
|
||||||
|
|
||||||
|
if (inputs['rubygems'] !== 'default') {
|
||||||
|
await common.measure('Updating RubyGems', async () =>
|
||||||
|
rubygems.rubygemsUpdate(inputs['rubygems'], rubyPrefix))
|
||||||
|
}
|
||||||
|
|
||||||
// When setup-ruby is used by other actions, this allows code in them to run
|
// When setup-ruby is used by other actions, this allows code in them to run
|
||||||
// before 'bundle install'. Installed dependencies may require additional
|
// before 'bundle install'. Installed dependencies may require additional
|
||||||
// libraries & headers, build tools, etc.
|
// libraries & headers, build tools, etc.
|
||||||
|
|||||||
+11
@@ -0,0 +1,11 @@
|
|||||||
|
const path = require('path')
|
||||||
|
const exec = require('@actions/exec')
|
||||||
|
|
||||||
|
export async function rubygemsUpdate(rubygemsVersionInput, rubyPrefix) {
|
||||||
|
const gem = path.join(rubyPrefix, 'bin', 'gem')
|
||||||
|
const rubygemsVersion = (rubygemsVersionInput === 'latest') ? [] : [rubygemsVersionInput]
|
||||||
|
|
||||||
|
await exec.exec(gem, ['update', '--system', ...rubygemsVersion])
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user