mirror of
https://github.com/ruby/setup-ruby.git
synced 2026-09-13 22:44:20 +02:00
Pass the validated engine and version to install()
This commit is contained in:
+11
-12
@@ -13,10 +13,10 @@ export function getAvailableVersions(platform, engine) {
|
||||
return rubyBuilderVersions.getVersions(platform)[engine]
|
||||
}
|
||||
|
||||
export async function install(platform, ruby) {
|
||||
const rubyPrefix = await downloadAndExtract(platform, ruby)
|
||||
export async function install(platform, engine, version) {
|
||||
const rubyPrefix = await downloadAndExtract(platform, engine, version)
|
||||
let newPathEntries
|
||||
if (ruby.startsWith('rubinius')) {
|
||||
if (engine === 'rubinius') {
|
||||
newPathEntries = [path.join(rubyPrefix, 'bin'), path.join(rubyPrefix, 'gems', 'bin')]
|
||||
} else {
|
||||
newPathEntries = [path.join(rubyPrefix, 'bin')]
|
||||
@@ -24,12 +24,12 @@ export async function install(platform, ruby) {
|
||||
return [rubyPrefix, newPathEntries]
|
||||
}
|
||||
|
||||
async function downloadAndExtract(platform, ruby) {
|
||||
async function downloadAndExtract(platform, engine, version) {
|
||||
const rubiesDir = path.join(os.homedir(), '.rubies')
|
||||
await io.mkdirP(rubiesDir)
|
||||
|
||||
const downloadPath = await common.measure('Downloading Ruby', async () => {
|
||||
const url = getDownloadURL(platform, ruby)
|
||||
const url = getDownloadURL(platform, engine, version)
|
||||
console.log(url)
|
||||
return await tc.downloadTool(url)
|
||||
})
|
||||
@@ -38,18 +38,17 @@ async function downloadAndExtract(platform, ruby) {
|
||||
await common.measure('Extracting Ruby', async () =>
|
||||
exec.exec(tar, [ '-xz', '-C', rubiesDir, '-f', downloadPath ]))
|
||||
|
||||
return path.join(rubiesDir, ruby)
|
||||
return path.join(rubiesDir, `${engine}-${version}`)
|
||||
}
|
||||
|
||||
function getDownloadURL(platform, ruby) {
|
||||
if (ruby.endsWith('-head')) {
|
||||
return getLatestHeadBuildURL(platform, ruby)
|
||||
function getDownloadURL(platform, engine, version) {
|
||||
if (common.isHeadVersion(version)) {
|
||||
return getLatestHeadBuildURL(platform, engine, version)
|
||||
} else {
|
||||
return `${releasesURL}/download/${builderReleaseTag}/${ruby}-${platform}.tar.gz`
|
||||
return `${releasesURL}/download/${builderReleaseTag}/${engine}-${version}-${platform}.tar.gz`
|
||||
}
|
||||
}
|
||||
|
||||
function getLatestHeadBuildURL(platform, ruby) {
|
||||
const engine = ruby.split('-')[0]
|
||||
function getLatestHeadBuildURL(platform, engine, version) {
|
||||
return `https://github.com/ruby/${engine}-dev-builder/releases/latest/download/${engine}-head-${platform}.tar.gz`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user