diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2833b0c1..a2237004 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -70,16 +70,21 @@ jobs: run: erl -version - name: Output Elixir version run: echo "Elixir ${{steps.setup-elixir.outputs.elixir-version}}" + if: ${{matrix.pair.elixir-version}} - name: Run Mix project tests run: |- cd test-projects/mix mix deps.get mix test + if: ${{matrix.pair.elixir-version}} - name: Run rebar3 project tests run: | cd test-projects/rebar3 rebar3 as test do xref,dialyzer,ct,cover + if: ${{matrix.pair.rebar3-version}} - name: Output rebar3 version run: echo "rebar3 ${{steps.setup-elixir.outputs.rebar3-version}}" + if: ${{matrix.pair.rebar3-version}} - name: Check rebar3 version run: rebar3 version + if: ${{matrix.pair.rebar3-version}} diff --git a/__tests__/setup-beam.test.js b/__tests__/setup-beam.test.js index 967c792a..a599c5ea 100644 --- a/__tests__/setup-beam.test.js +++ b/__tests__/setup-beam.test.js @@ -12,13 +12,13 @@ async function test() { vsn = await setupElixir.getOTPVersion('^19.3', 'ubuntu-18.04') deepStrictEqual(vsn, 'OTP-19.3.6') - vsn = await setupElixir.getElixirVersion('v1.10.x', '23') + vsn = await setupElixir.getElixirVersion('v1.10.x', 'OTP-23') deepStrictEqual(vsn, ['v1.10.4', '23']) - vsn = await setupElixir.getElixirVersion('^v1.10', '23') - deepStrictEqual(vsn, ['v1.10.4', '23']) + vsn = await setupElixir.getElixirVersion('^v1.10', 'OTP-23') + deepStrictEqual(vsn, ['v1.11.3', '23']) - vsn = await setupElixir.getElixirVersion('v1.11.0-rc.0', '23') + vsn = await setupElixir.getElixirVersion('v1.11.0-rc.0', 'OTP-23') deepStrictEqual(vsn, ['v1.11.0-rc.0', '23']) vsn = await setupElixir.getRebar3Version('3.x') diff --git a/dist/.github/workflows/test.yml b/dist/.github/workflows/test.yml index 519a628c..a2237004 100644 --- a/dist/.github/workflows/test.yml +++ b/dist/.github/workflows/test.yml @@ -27,7 +27,7 @@ jobs: name: > Pre-release integration tests (Erlang/OTP ${{matrix.pair.otp-version}}, - Elixir ${{matrix.pair.elixir-version}, + Elixir ${{matrix.pair.elixir-version}}, rebar3 ${{matrix.pair.rebar3-version}}) runs-on: ubuntu-latest strategy: @@ -70,16 +70,21 @@ jobs: run: erl -version - name: Output Elixir version run: echo "Elixir ${{steps.setup-elixir.outputs.elixir-version}}" + if: ${{matrix.pair.elixir-version}} - name: Run Mix project tests run: |- cd test-projects/mix mix deps.get mix test + if: ${{matrix.pair.elixir-version}} - name: Run rebar3 project tests run: | cd test-projects/rebar3 rebar3 as test do xref,dialyzer,ct,cover + if: ${{matrix.pair.rebar3-version}} - name: Output rebar3 version run: echo "rebar3 ${{steps.setup-elixir.outputs.rebar3-version}}" + if: ${{matrix.pair.rebar3-version}} - name: Check rebar3 version run: rebar3 version + if: ${{matrix.pair.rebar3-version}} diff --git a/dist/.github1/workflows/test.yml b/dist/.github1/workflows/test.yml index 519a628c..a2237004 100644 --- a/dist/.github1/workflows/test.yml +++ b/dist/.github1/workflows/test.yml @@ -27,7 +27,7 @@ jobs: name: > Pre-release integration tests (Erlang/OTP ${{matrix.pair.otp-version}}, - Elixir ${{matrix.pair.elixir-version}, + Elixir ${{matrix.pair.elixir-version}}, rebar3 ${{matrix.pair.rebar3-version}}) runs-on: ubuntu-latest strategy: @@ -70,16 +70,21 @@ jobs: run: erl -version - name: Output Elixir version run: echo "Elixir ${{steps.setup-elixir.outputs.elixir-version}}" + if: ${{matrix.pair.elixir-version}} - name: Run Mix project tests run: |- cd test-projects/mix mix deps.get mix test + if: ${{matrix.pair.elixir-version}} - name: Run rebar3 project tests run: | cd test-projects/rebar3 rebar3 as test do xref,dialyzer,ct,cover + if: ${{matrix.pair.rebar3-version}} - name: Output rebar3 version run: echo "rebar3 ${{steps.setup-elixir.outputs.rebar3-version}}" + if: ${{matrix.pair.rebar3-version}} - name: Check rebar3 version run: rebar3 version + if: ${{matrix.pair.rebar3-version}} diff --git a/dist/__tests__/setup-elixir.test.js b/dist/__tests__/setup-elixir.test.js index f73f7cbd..04bacd37 100644 --- a/dist/__tests__/setup-elixir.test.js +++ b/dist/__tests__/setup-elixir.test.js @@ -19,13 +19,13 @@ async function test() { vsn = await setupElixir.getOTPVersion('^19.3', 'ubuntu-18.04') deepStrictEqual(vsn, 'OTP-19.3.6') - vsn = await setupElixir.getElixirVersion('v1.10.x', '23') + vsn = await setupElixir.getElixirVersion('v1.10.x', 'OTP-23') deepStrictEqual(vsn, ['v1.10.4', '23']) - vsn = await setupElixir.getElixirVersion('^v1.10', '23') - deepStrictEqual(vsn, ['v1.10.4', '23']) + vsn = await setupElixir.getElixirVersion('^v1.10', 'OTP-23') + deepStrictEqual(vsn, ['v1.11.3', '23']) - vsn = await setupElixir.getElixirVersion('v1.11.0-rc.0', '23') + vsn = await setupElixir.getElixirVersion('v1.11.0-rc.0', 'OTP-23') deepStrictEqual(vsn, ['v1.11.0-rc.0', '23']) vsn = await setupElixir.getRebar3Version('3.x') @@ -3930,12 +3930,12 @@ const path = __nccwpck_require__(5622) /** * Install Erlang/OTP. * - * @param {string} version * @param {string} osVersion + * @param {string} version */ -async function installOTP(version, osVersion) { +async function installOTP(osVersion, version) { checkPlatform() - await exec(__nccwpck_require__.ab + "install-otp1", [version, osVersion]) + await exec(__nccwpck_require__.ab + "install-otp1", [osVersion, version]) } /** @@ -4009,7 +4009,7 @@ async function main() { // Elixir - optional const elixirSpec = getElixirSpecFromInput() - if (elixirSpec != undefined) { + if (elixirSpec) { const [elixirVersion, otpMajor] = await getElixirVersion( elixirSpec, otpVersion, @@ -4024,7 +4024,7 @@ async function main() { // rebar3 - optional const rebar3Spec = getRebar3SpecFromInput() - if (rebar3Spec != undefined) { + if (rebar3Spec) { const rebar3Version = await getRebar3Version(rebar3Spec) console.log(`##[group]Installing rebar3 ${rebar3Version}`) await installer.installRebar3(rebar3Version) @@ -4032,19 +4032,20 @@ async function main() { core.setOutput('rebar3-version', otpVersion) } - process.env.PATH = `${process.env.RUNNER_TEMP}/.setup-elixir/otp/bin` - process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/elixir/bin` - process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/rebar3/bin` - process.env.PATH += `:${process.env.PATH}` - // mix - optional - let installHex = core.getInput('install-hex') - installHex = installHex == null ? 'true' : installHex - if (installRebar === 'true') await exec('mix local.rebar --force') + if (elixirSpec) { + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/otp/bin` + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/elixir/bin` + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/rebar3/bin` + + let installRebar = core.getInput('install-rebar') + installRebar = installRebar == null ? 'true' : installRebar + installRebar && await exec('mix local.rebar --force') - let installRebar = core.getInput('install-rebar') - installRebar = installRebar == null ? 'true' : installRebar - if (installHex === 'true') await exec('mix local.hex --force') + let installHex = core.getInput('install-hex') + installHex = installHex == null ? 'true' : installHex + installHex && await exec('mix local.hex --force') + } } function getOTPSpecFromInput() { @@ -4059,7 +4060,7 @@ function getElixirSpecFromInput() { if (process.env.CI_TEST_ENV === 'test') { return process.env.CI_TEST_ELIXIR_VSN; } else { - core.getInput('elixir-version', {required: false}) || undefined; + return core.getInput('elixir-version', {required: false}); } } @@ -4067,7 +4068,7 @@ function getRebar3SpecFromInput() { if (process.env.CI_TEST_ENV === 'test') { return process.env.CI_TEST_REBAR3_VSN; } else { - return core.getInput('rebar3-version', {required: false}) || undefined; + return core.getInput('rebar3-version', {required: false}); } } @@ -4098,8 +4099,8 @@ async function getElixirVersion(spec, otpVersion) { const gitRef = version ? `v${version}` : spec const otpMatch = otpVersion.match(/^OTP-([\.\d]+)/) - if (otpMatch != null && versions.get(gitRef).includes(otpMatch[0])) { - return [gitRef, otpMatch[0]] + if (otpMatch && versions.get(gitRef).includes(otpMatch[1])) { + return [gitRef, otpMatch[1]] } else { return [gitRef, null] } @@ -4178,7 +4179,7 @@ async function getRebar3Version(spec) { } function get(url, testFile) { - if (process.env.NODE_ENV === 'test' && testFile !== undefined) { + if (process.env.NODE_ENV === 'test' && testFile) { return readFile(__nccwpck_require__.ab + "__tests__1/" + testFile) .then((buf) => buf.toString()) } diff --git a/dist/__tests__1/setup-elixir.test.js b/dist/__tests__1/setup-elixir.test.js index 967c792a..a599c5ea 100644 --- a/dist/__tests__1/setup-elixir.test.js +++ b/dist/__tests__1/setup-elixir.test.js @@ -12,13 +12,13 @@ async function test() { vsn = await setupElixir.getOTPVersion('^19.3', 'ubuntu-18.04') deepStrictEqual(vsn, 'OTP-19.3.6') - vsn = await setupElixir.getElixirVersion('v1.10.x', '23') + vsn = await setupElixir.getElixirVersion('v1.10.x', 'OTP-23') deepStrictEqual(vsn, ['v1.10.4', '23']) - vsn = await setupElixir.getElixirVersion('^v1.10', '23') - deepStrictEqual(vsn, ['v1.10.4', '23']) + vsn = await setupElixir.getElixirVersion('^v1.10', 'OTP-23') + deepStrictEqual(vsn, ['v1.11.3', '23']) - vsn = await setupElixir.getElixirVersion('v1.11.0-rc.0', '23') + vsn = await setupElixir.getElixirVersion('v1.11.0-rc.0', 'OTP-23') deepStrictEqual(vsn, ['v1.11.0-rc.0', '23']) vsn = await setupElixir.getRebar3Version('3.x') diff --git a/dist/index.js b/dist/index.js index 26f65f94..50f04917 100644 --- a/dist/index.js +++ b/dist/index.js @@ -3884,12 +3884,12 @@ const path = __nccwpck_require__(5622) /** * Install Erlang/OTP. * - * @param {string} version * @param {string} osVersion + * @param {string} version */ -async function installOTP(version, osVersion) { +async function installOTP(osVersion, version) { checkPlatform() - await exec(__nccwpck_require__.ab + "install-otp", [version, osVersion]) + await exec(__nccwpck_require__.ab + "install-otp", [osVersion, version]) } /** @@ -3963,7 +3963,7 @@ async function main() { // Elixir - optional const elixirSpec = getElixirSpecFromInput() - if (elixirSpec != undefined) { + if (elixirSpec) { const [elixirVersion, otpMajor] = await getElixirVersion( elixirSpec, otpVersion, @@ -3978,7 +3978,7 @@ async function main() { // rebar3 - optional const rebar3Spec = getRebar3SpecFromInput() - if (rebar3Spec != undefined) { + if (rebar3Spec) { const rebar3Version = await getRebar3Version(rebar3Spec) console.log(`##[group]Installing rebar3 ${rebar3Version}`) await installer.installRebar3(rebar3Version) @@ -3986,19 +3986,20 @@ async function main() { core.setOutput('rebar3-version', otpVersion) } - process.env.PATH = `${process.env.RUNNER_TEMP}/.setup-elixir/otp/bin` - process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/elixir/bin` - process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/rebar3/bin` - process.env.PATH += `:${process.env.PATH}` - // mix - optional - let installHex = core.getInput('install-hex') - installHex = installHex == null ? 'true' : installHex - if (installRebar === 'true') await exec('mix local.rebar --force') + if (elixirSpec) { + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/otp/bin` + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/elixir/bin` + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/rebar3/bin` - let installRebar = core.getInput('install-rebar') - installRebar = installRebar == null ? 'true' : installRebar - if (installHex === 'true') await exec('mix local.hex --force') + let installRebar = core.getInput('install-rebar') + installRebar = installRebar == null ? 'true' : installRebar + installRebar && await exec('mix local.rebar --force') + + let installHex = core.getInput('install-hex') + installHex = installHex == null ? 'true' : installHex + installHex && await exec('mix local.hex --force') + } } function getOTPSpecFromInput() { @@ -4013,7 +4014,7 @@ function getElixirSpecFromInput() { if (process.env.CI_TEST_ENV === 'test') { return process.env.CI_TEST_ELIXIR_VSN; } else { - core.getInput('elixir-version', {required: false}) || undefined; + return core.getInput('elixir-version', {required: false}); } } @@ -4021,7 +4022,7 @@ function getRebar3SpecFromInput() { if (process.env.CI_TEST_ENV === 'test') { return process.env.CI_TEST_REBAR3_VSN; } else { - return core.getInput('rebar3-version', {required: false}) || undefined; + return core.getInput('rebar3-version', {required: false}); } } @@ -4052,8 +4053,8 @@ async function getElixirVersion(spec, otpVersion) { const gitRef = version ? `v${version}` : spec const otpMatch = otpVersion.match(/^OTP-([\.\d]+)/) - if (otpMatch != null && versions.get(gitRef).includes(otpMatch[0])) { - return [gitRef, otpMatch[0]] + if (otpMatch && versions.get(gitRef).includes(otpMatch[1])) { + return [gitRef, otpMatch[1]] } else { return [gitRef, null] } @@ -4132,7 +4133,7 @@ async function getRebar3Version(spec) { } function get(url, testFile) { - if (process.env.NODE_ENV === 'test' && testFile !== undefined) { + if (process.env.NODE_ENV === 'test' && testFile) { return readFile(__nccwpck_require__.ab + "__tests__/" + testFile) .then((buf) => buf.toString()) } diff --git a/dist/install-elixir b/dist/install-elixir index 2e7a08a0..41fb90a8 100755 --- a/dist/install-elixir +++ b/dist/install-elixir @@ -4,14 +4,7 @@ set -eo pipefail cd "$RUNNER_TEMP" -<<<<<<< HEAD -wget -q https://repo.hex.pm/builds/elixir/${1}${2}.zip -unzip -d .setup-beam/elixir ${1}${2}.zip -rm ${1}${2}.zip -echo "$(pwd)/.setup-beam/elixir/bin" >> $GITHUB_PATH -======= -wget -q https://repo.hex.pm/builds/elixir/"${1}""${2}".zip -unzip -d .setup-elixir/elixir "${1}""${2}".zip -rm "${1}""${2}".zip +wget -q "https://repo.hex.pm/builds/elixir/${1}${2}.zip" +unzip -d .setup-elixir/elixir "${1}${2}.zip" +rm -f "${1}${2}.zip" echo "$(pwd)/.setup-elixir/elixir/bin" >> "$GITHUB_PATH" ->>>>>>> Merge setup-erlang in diff --git a/dist/install-elixir1 b/dist/install-elixir1 index 9b7de466..41fb90a8 100755 --- a/dist/install-elixir1 +++ b/dist/install-elixir1 @@ -4,7 +4,7 @@ set -eo pipefail cd "$RUNNER_TEMP" -wget -q https://repo.hex.pm/builds/elixir/"${1}""${2}".zip -unzip -d .setup-elixir/elixir "${1}""${2}".zip -rm "${1}""${2}".zip +wget -q "https://repo.hex.pm/builds/elixir/${1}${2}.zip" +unzip -d .setup-elixir/elixir "${1}${2}.zip" +rm -f "${1}${2}.zip" echo "$(pwd)/.setup-elixir/elixir/bin" >> "$GITHUB_PATH" diff --git a/dist/install-otp b/dist/install-otp index 175c44a4..d6e55c43 100755 --- a/dist/install-otp +++ b/dist/install-otp @@ -4,9 +4,12 @@ set -eo pipefail cd "$RUNNER_TEMP" -wget -q -O otp.tar.gz https://repo.hex.pm/builds/otp/"${2}"/"${1}".tar.gz +OS=${1} +OTP=${2} + +wget -q -O otp.tar.gz "https://repo.hex.pm/builds/otp/${OS}/${OTP}.tar.gz" mkdir -p .setup-elixir/otp tar zxf otp.tar.gz -C .setup-elixir/otp --strip-components=1 -rm otp.tar.gz -.setup-elixir/otp/Install -minimal "$(pwd)"/.setup-elixir/otp +rm -f otp.tar.gz +.setup-elixir/otp/Install -minimal "$(pwd)/.setup-elixir/otp" echo "$(pwd)/.setup-elixir/otp/bin" >> "$GITHUB_PATH" diff --git a/dist/install-otp1 b/dist/install-otp1 index 175c44a4..d6e55c43 100755 --- a/dist/install-otp1 +++ b/dist/install-otp1 @@ -4,9 +4,12 @@ set -eo pipefail cd "$RUNNER_TEMP" -wget -q -O otp.tar.gz https://repo.hex.pm/builds/otp/"${2}"/"${1}".tar.gz +OS=${1} +OTP=${2} + +wget -q -O otp.tar.gz "https://repo.hex.pm/builds/otp/${OS}/${OTP}.tar.gz" mkdir -p .setup-elixir/otp tar zxf otp.tar.gz -C .setup-elixir/otp --strip-components=1 -rm otp.tar.gz -.setup-elixir/otp/Install -minimal "$(pwd)"/.setup-elixir/otp +rm -f otp.tar.gz +.setup-elixir/otp/Install -minimal "$(pwd)/.setup-elixir/otp" echo "$(pwd)/.setup-elixir/otp/bin" >> "$GITHUB_PATH" diff --git a/dist/install-rebar3 b/dist/install-rebar3 index 686b74d5..ba80ba06 100755 --- a/dist/install-rebar3 +++ b/dist/install-rebar3 @@ -6,9 +6,9 @@ cd "$RUNNER_TEMP" VSN=${1} FILE=rebar3 -DIR_FOR_BIN=.setup-elixir/rebar3 +DIR_FOR_BIN=.setup-elixir/rebar3/bin -wget -q https://github.com/erlang/rebar3/releases/download/"${VSN}"/"${FILE}" +wget -q "https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE}" mkdir -p ${DIR_FOR_BIN} chmod +x ${FILE} mv ${FILE} ${DIR_FOR_BIN} diff --git a/dist/install-rebar31 b/dist/install-rebar31 index 686b74d5..ba80ba06 100755 --- a/dist/install-rebar31 +++ b/dist/install-rebar31 @@ -6,9 +6,9 @@ cd "$RUNNER_TEMP" VSN=${1} FILE=rebar3 -DIR_FOR_BIN=.setup-elixir/rebar3 +DIR_FOR_BIN=.setup-elixir/rebar3/bin -wget -q https://github.com/erlang/rebar3/releases/download/"${VSN}"/"${FILE}" +wget -q "https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE}" mkdir -p ${DIR_FOR_BIN} chmod +x ${FILE} mv ${FILE} ${DIR_FOR_BIN} diff --git a/src/install-elixir b/src/install-elixir index 9b7de466..41fb90a8 100755 --- a/src/install-elixir +++ b/src/install-elixir @@ -4,7 +4,7 @@ set -eo pipefail cd "$RUNNER_TEMP" -wget -q https://repo.hex.pm/builds/elixir/"${1}""${2}".zip -unzip -d .setup-elixir/elixir "${1}""${2}".zip -rm "${1}""${2}".zip +wget -q "https://repo.hex.pm/builds/elixir/${1}${2}.zip" +unzip -d .setup-elixir/elixir "${1}${2}.zip" +rm -f "${1}${2}.zip" echo "$(pwd)/.setup-elixir/elixir/bin" >> "$GITHUB_PATH" diff --git a/src/install-otp b/src/install-otp index 175c44a4..d6e55c43 100755 --- a/src/install-otp +++ b/src/install-otp @@ -4,9 +4,12 @@ set -eo pipefail cd "$RUNNER_TEMP" -wget -q -O otp.tar.gz https://repo.hex.pm/builds/otp/"${2}"/"${1}".tar.gz +OS=${1} +OTP=${2} + +wget -q -O otp.tar.gz "https://repo.hex.pm/builds/otp/${OS}/${OTP}.tar.gz" mkdir -p .setup-elixir/otp tar zxf otp.tar.gz -C .setup-elixir/otp --strip-components=1 -rm otp.tar.gz -.setup-elixir/otp/Install -minimal "$(pwd)"/.setup-elixir/otp +rm -f otp.tar.gz +.setup-elixir/otp/Install -minimal "$(pwd)/.setup-elixir/otp" echo "$(pwd)/.setup-elixir/otp/bin" >> "$GITHUB_PATH" diff --git a/src/install-rebar3 b/src/install-rebar3 index 686b74d5..ba80ba06 100755 --- a/src/install-rebar3 +++ b/src/install-rebar3 @@ -6,9 +6,9 @@ cd "$RUNNER_TEMP" VSN=${1} FILE=rebar3 -DIR_FOR_BIN=.setup-elixir/rebar3 +DIR_FOR_BIN=.setup-elixir/rebar3/bin -wget -q https://github.com/erlang/rebar3/releases/download/"${VSN}"/"${FILE}" +wget -q "https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE}" mkdir -p ${DIR_FOR_BIN} chmod +x ${FILE} mv ${FILE} ${DIR_FOR_BIN} diff --git a/src/installer.js b/src/installer.js index 9751cbd1..5e799338 100644 --- a/src/installer.js +++ b/src/installer.js @@ -4,12 +4,12 @@ const path = require('path') /** * Install Erlang/OTP. * - * @param {string} version * @param {string} osVersion + * @param {string} version */ -async function installOTP(version, osVersion) { +async function installOTP(osVersion, version) { checkPlatform() - await exec(path.join(__dirname, 'install-otp'), [version, osVersion]) + await exec(path.join(__dirname, 'install-otp'), [osVersion, version]) } /** diff --git a/src/setup-beam.js b/src/setup-beam.js index 922a07b1..2ea9e52b 100644 --- a/src/setup-beam.js +++ b/src/setup-beam.js @@ -28,7 +28,7 @@ async function main() { // Elixir - optional const elixirSpec = getElixirSpecFromInput() - if (elixirSpec != undefined) { + if (elixirSpec) { const [elixirVersion, otpMajor] = await getElixirVersion( elixirSpec, otpVersion, @@ -43,7 +43,7 @@ async function main() { // rebar3 - optional const rebar3Spec = getRebar3SpecFromInput() - if (rebar3Spec != undefined) { + if (rebar3Spec) { const rebar3Version = await getRebar3Version(rebar3Spec) console.log(`##[group]Installing rebar3 ${rebar3Version}`) await installer.installRebar3(rebar3Version) @@ -51,19 +51,20 @@ async function main() { core.setOutput('rebar3-version', otpVersion) } - process.env.PATH = `${process.env.RUNNER_TEMP}/.setup-elixir/otp/bin` - process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/elixir/bin` - process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/rebar3/bin` - process.env.PATH += `:${process.env.PATH}` - // mix - optional - let installHex = core.getInput('install-hex') - installHex = installHex == null ? 'true' : installHex - if (installRebar === 'true') await exec('mix local.rebar --force') - - let installRebar = core.getInput('install-rebar') - installRebar = installRebar == null ? 'true' : installRebar - if (installHex === 'true') await exec('mix local.hex --force') + if (elixirSpec) { + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/otp/bin` + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/elixir/bin` + process.env.PATH += `:${process.env.RUNNER_TEMP}/.setup-elixir/rebar3/bin` + + let installRebar = core.getInput('install-rebar') + installRebar = installRebar == null ? 'true' : installRebar + installRebar && await exec('mix local.rebar --force') + + let installHex = core.getInput('install-hex') + installHex = installHex == null ? 'true' : installHex + installHex && await exec('mix local.hex --force') + } } function getOTPSpecFromInput() { @@ -78,7 +79,7 @@ function getElixirSpecFromInput() { if (process.env.CI_TEST_ENV === 'test') { return process.env.CI_TEST_ELIXIR_VSN; } else { - core.getInput('elixir-version', {required: false}) || undefined; + return core.getInput('elixir-version', {required: false}); } } @@ -86,7 +87,7 @@ function getRebar3SpecFromInput() { if (process.env.CI_TEST_ENV === 'test') { return process.env.CI_TEST_REBAR3_VSN; } else { - return core.getInput('rebar3-version', {required: false}) || undefined; + return core.getInput('rebar3-version', {required: false}); } } @@ -117,8 +118,8 @@ async function getElixirVersion(spec, otpVersion) { const gitRef = version ? `v${version}` : spec const otpMatch = otpVersion.match(/^OTP-([\.\d]+)/) - if (otpMatch != null && versions.get(gitRef).includes(otpMatch[0])) { - return [gitRef, otpMatch[0]] + if (otpMatch && versions.get(gitRef).includes(otpMatch[1])) { + return [gitRef, otpMatch[1]] } else { return [gitRef, null] } @@ -197,7 +198,7 @@ async function getRebar3Version(spec) { } function get(url, testFile) { - if (process.env.NODE_ENV === 'test' && testFile !== undefined) { + if (process.env.NODE_ENV === 'test' && testFile) { return readFile(path.join(__dirname, '..', '__tests__', testFile)) .then((buf) => buf.toString()) }