diff --git a/dist/index.js b/dist/index.js index 7e978a9..724995d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -2955,9 +2955,9 @@ async function installElixir(version, otpMajor) { * * @param {string} version */ -async function installOTP(version) { +async function installOTP(version, osVersion) { if (process.platform === 'linux') { - await exec(__webpack_require__.ab + "install-otp", [version]) + await exec(__webpack_require__.ab + "install-otp", [version, osVersion]) return } @@ -3321,14 +3321,15 @@ async function main() { elixirSpec, otpVersion ) + const osVersion = getOSVersion() let installHex = core.getInput('install-hex') installHex = installHex == null ? 'true' : installHex let installRebar = core.getInput('install-rebar') installRebar = installRebar == null ? 'true' : installRebar - console.log(`##[group]Installing OTP ${otpVersion}`) - await installOTP(otpVersion) + console.log(`##[group]Installing OTP ${otpVersion} - built on ${osVersion}`) + await installOTP(otpVersion, osVersion) console.log(`##[endgroup]`) console.log(`##[group]Installing Elixir ${elixirVersion}`) @@ -3344,6 +3345,7 @@ async function main() { console.log(`##[add-matcher]${path.join(matchersPath, 'elixir.json')}`) core.setOutput('otp-version', otpVersion) core.setOutput('elixir-version', elixirVersion) + core.setOutput('osVersion', osVersion) } function checkPlatform() { @@ -3357,6 +3359,16 @@ async function getOtpVersion(spec) { return getVersionFromSpec(spec, await getOtpVersions()) || spec } +function getOSVersion() { + const mapToUbuntuVersion = { + ubuntu16: 'ubuntu-16.04', + ubuntu18: 'ubuntu-18.04', + ubuntu20: 'ubuntu-20.04', + } + + return mapToUbuntuVersion[process.env.ImageOS] || 'ubuntu-18.04' +} + exports.getElixirVersion = getElixirVersion async function getElixirVersion(spec, otpVersion) { diff --git a/dist/install-otp b/dist/install-otp index 659803e..13145bc 100755 --- a/dist/install-otp +++ b/dist/install-otp @@ -4,7 +4,7 @@ set -eo pipefail cd $RUNNER_TEMP -wget -q -O otp.tar.gz https://repo.hex.pm/builds/otp/ubuntu-14.04/OTP-${1}.tar.gz +wget -q -O otp.tar.gz https://repo.hex.pm/builds/otp/${2}/OTP-${1}.tar.gz mkdir -p .setup-elixir/otp tar zxf otp.tar.gz -C .setup-elixir/otp --strip-components=1 rm otp.tar.gz diff --git a/src/install-otp b/src/install-otp index 659803e..13145bc 100755 --- a/src/install-otp +++ b/src/install-otp @@ -4,7 +4,7 @@ set -eo pipefail cd $RUNNER_TEMP -wget -q -O otp.tar.gz https://repo.hex.pm/builds/otp/ubuntu-14.04/OTP-${1}.tar.gz +wget -q -O otp.tar.gz https://repo.hex.pm/builds/otp/${2}/OTP-${1}.tar.gz mkdir -p .setup-elixir/otp tar zxf otp.tar.gz -C .setup-elixir/otp --strip-components=1 rm otp.tar.gz diff --git a/src/installer.js b/src/installer.js index 7a55dbf..a64b23c 100644 --- a/src/installer.js +++ b/src/installer.js @@ -22,9 +22,9 @@ async function installElixir(version, otpMajor) { * * @param {string} version */ -async function installOTP(version) { +async function installOTP(version, osVersion) { if (process.platform === 'linux') { - await exec(path.join(__dirname, 'install-otp'), [version]) + await exec(path.join(__dirname, 'install-otp'), [version, osVersion]) return } diff --git a/src/setup-elixir.js b/src/setup-elixir.js index 4f45b16..b896d7e 100644 --- a/src/setup-elixir.js +++ b/src/setup-elixir.js @@ -23,14 +23,15 @@ async function main() { elixirSpec, otpVersion ) + const osVersion = getOSVersion() let installHex = core.getInput('install-hex') installHex = installHex == null ? 'true' : installHex let installRebar = core.getInput('install-rebar') installRebar = installRebar == null ? 'true' : installRebar - console.log(`##[group]Installing OTP ${otpVersion}`) - await installOTP(otpVersion) + console.log(`##[group]Installing OTP ${otpVersion} - built on ${osVersion}`) + await installOTP(otpVersion, osVersion) console.log(`##[endgroup]`) console.log(`##[group]Installing Elixir ${elixirVersion}`) @@ -46,6 +47,7 @@ async function main() { console.log(`##[add-matcher]${path.join(matchersPath, 'elixir.json')}`) core.setOutput('otp-version', otpVersion) core.setOutput('elixir-version', elixirVersion) + core.setOutput('osVersion', osVersion) } function checkPlatform() { @@ -59,6 +61,16 @@ async function getOtpVersion(spec) { return getVersionFromSpec(spec, await getOtpVersions()) || spec } +function getOSVersion() { + const mapToUbuntuVersion = { + ubuntu16: 'ubuntu-16.04', + ubuntu18: 'ubuntu-18.04', + ubuntu20: 'ubuntu-20.04', + } + + return mapToUbuntuVersion[process.env.ImageOS] || 'ubuntu-18.04' +} + exports.getElixirVersion = getElixirVersion async function getElixirVersion(spec, otpVersion) {