Add support for truffleruby-head

This commit is contained in:
Benoit Daloze
2020-02-01 15:17:12 +01:00
parent 818f4eeb16
commit 0331c8b821
7 changed files with 3367 additions and 7 deletions
+15 -1
View File
@@ -4,10 +4,14 @@ const core = require('@actions/core')
const io = require('@actions/io')
const tc = require('@actions/tool-cache')
const rubyBuilderVersions = require('./ruby-install-builder-versions')
const axios = require('axios')
const builderReleaseTag = 'builds-newer-openssl'
const releasesURL = 'https://github.com/eregon/ruby-install-builder/releases'
const truffleRubyHeadReleaseURL = 'https://github.com/eregon/truffleruby-dev-builder/releases/download'
const truffleRubyHeadMetadataURL = 'https://raw.githubusercontent.com/eregon/truffleruby-dev-builder/metadata/latest_build.tag'
export function getAvailableVersions(platform, engine) {
return rubyBuilderVersions.getVersions(platform)[engine]
}
@@ -27,7 +31,7 @@ async function downloadAndExtract(platform, ruby) {
const rubiesDir = path.join(os.homedir(), '.rubies')
await io.mkdirP(rubiesDir)
const url = `${releasesURL}/download/${builderReleaseTag}/${ruby}-${platform}.tar.gz`
const url = await getDownloadURL(platform, ruby)
console.log(url)
const downloadPath = await tc.downloadTool(url)
@@ -35,3 +39,13 @@ async function downloadAndExtract(platform, ruby) {
return path.join(rubiesDir, ruby)
}
async function getDownloadURL(platform, ruby) {
if (ruby === 'truffleruby-head') {
const response = await axios.get(truffleRubyHeadMetadataURL)
const tag = response.data.trim()
return `${truffleRubyHeadReleaseURL}/${tag}/${ruby}-${platform}.tar.gz`
} else {
return `${releasesURL}/download/${builderReleaseTag}/${ruby}-${platform}.tar.gz`
}
}