mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Extract main logic in its own function
* So there isn't a giant try/catch around it.
This commit is contained in:
+31
-26
@@ -965,37 +965,42 @@ const common = __webpack_require__(239)
|
||||
|
||||
async function run() {
|
||||
try {
|
||||
process.chdir(core.getInput('working-directory'))
|
||||
const platform = common.getVirtualEnvironmentName()
|
||||
const [engine, version] = parseRubyEngineAndVersion(core.getInput('ruby-version'))
|
||||
|
||||
let installer
|
||||
if (platform === 'windows-latest' && engine !== 'jruby') {
|
||||
installer = __webpack_require__(826)
|
||||
} else {
|
||||
installer = __webpack_require__(489)
|
||||
}
|
||||
|
||||
const engineVersions = installer.getAvailableVersions(platform, engine)
|
||||
const ruby = validateRubyEngineAndVersion(platform, engineVersions, engine, version)
|
||||
|
||||
createGemRC()
|
||||
|
||||
const [rubyPrefix, newPathEntries] = await installer.install(platform, ruby)
|
||||
|
||||
setupPath(ruby, newPathEntries)
|
||||
|
||||
if (core.getInput('bundler') !== 'none') {
|
||||
await common.measure('Installing Bundler', async () =>
|
||||
installBundler(platform, rubyPrefix, engine, version))
|
||||
}
|
||||
|
||||
core.setOutput('ruby-prefix', rubyPrefix)
|
||||
await main()
|
||||
} catch (error) {
|
||||
core.setFailed(error.message)
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
process.chdir(core.getInput('working-directory'))
|
||||
|
||||
const platform = common.getVirtualEnvironmentName()
|
||||
const [engine, version] = parseRubyEngineAndVersion(core.getInput('ruby-version'))
|
||||
|
||||
let installer
|
||||
if (platform === 'windows-latest' && engine !== 'jruby') {
|
||||
installer = __webpack_require__(826)
|
||||
} else {
|
||||
installer = __webpack_require__(489)
|
||||
}
|
||||
|
||||
const engineVersions = installer.getAvailableVersions(platform, engine)
|
||||
const ruby = validateRubyEngineAndVersion(platform, engineVersions, engine, version)
|
||||
|
||||
createGemRC()
|
||||
|
||||
const [rubyPrefix, newPathEntries] = await installer.install(platform, ruby)
|
||||
|
||||
setupPath(ruby, newPathEntries)
|
||||
|
||||
if (core.getInput('bundler') !== 'none') {
|
||||
await common.measure('Installing Bundler', async () =>
|
||||
installBundler(platform, rubyPrefix, engine, version))
|
||||
}
|
||||
|
||||
core.setOutput('ruby-prefix', rubyPrefix)
|
||||
}
|
||||
|
||||
function parseRubyEngineAndVersion(rubyVersion) {
|
||||
if (rubyVersion === 'default') {
|
||||
if (fs.existsSync('.ruby-version')) {
|
||||
|
||||
@@ -7,37 +7,42 @@ const common = require('./common')
|
||||
|
||||
export async function run() {
|
||||
try {
|
||||
process.chdir(core.getInput('working-directory'))
|
||||
const platform = common.getVirtualEnvironmentName()
|
||||
const [engine, version] = parseRubyEngineAndVersion(core.getInput('ruby-version'))
|
||||
|
||||
let installer
|
||||
if (platform === 'windows-latest' && engine !== 'jruby') {
|
||||
installer = require('./windows')
|
||||
} else {
|
||||
installer = require('./ruby-builder')
|
||||
}
|
||||
|
||||
const engineVersions = installer.getAvailableVersions(platform, engine)
|
||||
const ruby = validateRubyEngineAndVersion(platform, engineVersions, engine, version)
|
||||
|
||||
createGemRC()
|
||||
|
||||
const [rubyPrefix, newPathEntries] = await installer.install(platform, ruby)
|
||||
|
||||
setupPath(ruby, newPathEntries)
|
||||
|
||||
if (core.getInput('bundler') !== 'none') {
|
||||
await common.measure('Installing Bundler', async () =>
|
||||
installBundler(platform, rubyPrefix, engine, version))
|
||||
}
|
||||
|
||||
core.setOutput('ruby-prefix', rubyPrefix)
|
||||
await main()
|
||||
} catch (error) {
|
||||
core.setFailed(error.message)
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
process.chdir(core.getInput('working-directory'))
|
||||
|
||||
const platform = common.getVirtualEnvironmentName()
|
||||
const [engine, version] = parseRubyEngineAndVersion(core.getInput('ruby-version'))
|
||||
|
||||
let installer
|
||||
if (platform === 'windows-latest' && engine !== 'jruby') {
|
||||
installer = require('./windows')
|
||||
} else {
|
||||
installer = require('./ruby-builder')
|
||||
}
|
||||
|
||||
const engineVersions = installer.getAvailableVersions(platform, engine)
|
||||
const ruby = validateRubyEngineAndVersion(platform, engineVersions, engine, version)
|
||||
|
||||
createGemRC()
|
||||
|
||||
const [rubyPrefix, newPathEntries] = await installer.install(platform, ruby)
|
||||
|
||||
setupPath(ruby, newPathEntries)
|
||||
|
||||
if (core.getInput('bundler') !== 'none') {
|
||||
await common.measure('Installing Bundler', async () =>
|
||||
installBundler(platform, rubyPrefix, engine, version))
|
||||
}
|
||||
|
||||
core.setOutput('ruby-prefix', rubyPrefix)
|
||||
}
|
||||
|
||||
function parseRubyEngineAndVersion(rubyVersion) {
|
||||
if (rubyVersion === 'default') {
|
||||
if (fs.existsSync('.ruby-version')) {
|
||||
|
||||
Reference in New Issue
Block a user