neiam
/action-setup-beam
action-setup-beam
public · Issues · Pulls · Labels · Forks · Compare · Actions queued
⭐
Log in to mark this repository.
Allow using rebar3 nightly builds (#84)
c71c5c9 · Paulo F. Oliveira · 2022-01-12 14:25
Files changed
modified
.github/workflows/ubuntu.yml
+3
−0
@@ -21,6 +21,9 @@ jobs:
| 21 | 21 | fail-fast: false |
| 22 | 22 | matrix: |
| 23 | 23 | combo: |
| 24 | + - otp-version: '24' | |
| 25 | + rebar3-version: 'nightly' | |
| 26 | + os: 'ubuntu-latest' | |
| 24 | 27 | - elixir-version: 'v1.0' |
| 25 | 28 | otp-version: '17' |
| 26 | 29 | os: 'ubuntu-16.04' |
modified
.github/workflows/windows.yml
+3
−0
@@ -24,6 +24,9 @@ jobs:
| 24 | 24 | - otp-version: '24.0.2' |
| 25 | 25 | rebar3-version: '3.16' |
| 26 | 26 | os: 'windows-2019' |
| 27 | + - otp-version: '24.0.2' | |
| 28 | + rebar3-version: 'nightly' | |
| 29 | + os: 'windows-2019' | |
| 27 | 30 | - otp-version: '23.0' |
| 28 | 31 | rebar3-version: '3.15' |
| 29 | 32 | os: 'windows-2019' |
modified
README.md
+2
−2
@@ -20,13 +20,13 @@ workflow by:
| 20 | 20 | [problem matchers](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md) show |
| 21 | 21 | warnings and errors on pull requests |
| 22 | 22 | |
| 23 | −**Note** Currently, this action only supports Actions' `ubuntu-` and `windows-` runtimes. | |
| 23 | +**Note**: currently, this action only supports Actions' `ubuntu-` and `windows-` runtimes. | |
| 24 | 24 | |
| 25 | 25 | ## Usage |
| 26 | 26 | |
| 27 | 27 | See [action.yml](action.yml) for the action's specification. |
| 28 | 28 | |
| 29 | −**Note**: The Erlang/OTP release version specification is [relatively | |
| 29 | +**Note**: the Erlang/OTP release version specification is [relatively | |
| 30 | 30 | complex](http://erlang.org/doc/system_principles/versions.html#version-scheme). |
| 31 | 31 | For best results, we recommend specifying exact |
| 32 | 32 | versions, and setting option `version-type` to `strict`. |
modified
action.yml
+1
−1
@@ -21,7 +21,7 @@ inputs:
| 21 | 21 | description: Whether to install Rebar (with Mix) |
| 22 | 22 | default: true |
| 23 | 23 | rebar3-version: |
| 24 | − description: Version range or exact version of rebar3 to use | |
| 24 | + description: Version range or exact version of rebar3 to use (or nightly) | |
| 25 | 25 | version-type: |
| 26 | 26 | description: strict means the versions are take as-are; loose means we try |
| 27 | 27 | to guess versions based on semver rules |
modified
dist/index.js
+6
−1
@@ -4785,9 +4785,14 @@ async function maybeInstallGleam(gleamSpec) {
| 4785 | 4785 | |
| 4786 | 4786 | async function maybeInstallRebar3(rebar3Spec) { |
| 4787 | 4787 | let installed = false |
| 4788 | + let rebar3Version | |
| 4788 | 4789 | |
| 4789 | 4790 | if (rebar3Spec) { |
| 4790 | − const rebar3Version = await getRebar3Version(rebar3Spec) | |
| 4791 | + if (rebar3Spec === 'nightly') { | |
| 4792 | + rebar3Version = 'nightly' | |
| 4793 | + } else { | |
| 4794 | + rebar3Version = await getRebar3Version(rebar3Spec) | |
| 4795 | + } | |
| 4791 | 4796 | console.log(`##[group]Installing rebar3 ${rebar3Version}`) |
| 4792 | 4797 | await installer.installRebar3(rebar3Version) |
| 4793 | 4798 | core.setOutput('rebar3-version', rebar3Version) |
modified
dist/install-rebar3.ps1
+9
−2
@@ -10,12 +10,19 @@ $FILE_OUTPUT_PS1="rebar3.ps1"
| 10 | 10 | $DIR_FOR_BIN=".setup-beam/rebar3" |
| 11 | 11 | |
| 12 | 12 | $ProgressPreference="SilentlyContinue" |
| 13 | −Invoke-WebRequest "https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" -OutFile "$FILE_OUTPUT" | |
| 13 | +$REBAR3_TARGET="https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" | |
| 14 | +$REBAR3_NIGHTLY="" | |
| 15 | +If ( $VSN -eq "nightly" ) | |
| 16 | +{ | |
| 17 | + $REBAR3_TARGET="https://s3.amazonaws.com/rebar3-nightly/rebar3" | |
| 18 | + $REBAR3_NIGHTLY=" (from nightly build)" | |
| 19 | +} | |
| 20 | +Invoke-WebRequest "$REBAR3_TARGET" -OutFile "$FILE_OUTPUT" | |
| 14 | 21 | $ProgressPreference="Continue" |
| 15 | 22 | New-Item "$DIR_FOR_BIN/bin" -ItemType Directory | Out-Null |
| 16 | 23 | Move-Item "$FILE_OUTPUT" "$DIR_FOR_BIN/bin" |
| 17 | 24 | Write-Output "& escript.exe $PWD/$DIR_FOR_BIN/bin/$FILE_OUTPUT `$args" | Out-File -FilePath "$FILE_OUTPUT_PS1" -Encoding utf8 -Append |
| 18 | 25 | type $FILE_OUTPUT_PS1 |
| 19 | 26 | Move-Item "$FILE_OUTPUT_PS1" "$DIR_FOR_BIN/bin" |
| 20 | −Write-Output "Installed rebar3 version follows" | |
| 27 | +Write-Output "Installed rebar3 version$REBAR3_NIGHTLY follows" | |
| 21 | 28 | & "$DIR_FOR_BIN/bin/rebar3" "version" | Write-Output |
modified
dist/install-rebar3.sh
+8
−2
@@ -9,9 +9,15 @@ FILE_INPUT=rebar3
| 9 | 9 | FILE_OUTPUT=rebar3 |
| 10 | 10 | DIR_FOR_BIN=.setup-beam/rebar3 |
| 11 | 11 | |
| 12 | −wget -q -O "${FILE_OUTPUT}" "https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" | |
| 12 | +REBAR3_TARGET="https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" | |
| 13 | +REBAR3_NIGHTLY="" | |
| 14 | +if [ "${VSN}" == "nightly" ]; then | |
| 15 | + REBAR3_TARGET="https://s3.amazonaws.com/rebar3-nightly/rebar3" | |
| 16 | + REBAR3_NIGHTLY=" (from nightly build)" | |
| 17 | +fi | |
| 18 | +wget -q -O "${FILE_OUTPUT}" "${REBAR3_TARGET}" | |
| 13 | 19 | mkdir -p "${DIR_FOR_BIN}/bin" |
| 14 | 20 | chmod +x "${FILE_OUTPUT}" |
| 15 | 21 | mv "${FILE_OUTPUT}" "${DIR_FOR_BIN}/bin" |
| 16 | −echo "Installed rebar3 version follows" | |
| 22 | +echo "Installed rebar3 version$REBAR3_NIGHTLY follows" | |
| 17 | 23 | ${DIR_FOR_BIN}/bin/rebar3 version |
modified
src/install-rebar3.ps1
+9
−2
@@ -10,12 +10,19 @@ $FILE_OUTPUT_PS1="rebar3.ps1"
| 10 | 10 | $DIR_FOR_BIN=".setup-beam/rebar3" |
| 11 | 11 | |
| 12 | 12 | $ProgressPreference="SilentlyContinue" |
| 13 | −Invoke-WebRequest "https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" -OutFile "$FILE_OUTPUT" | |
| 13 | +$REBAR3_TARGET="https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" | |
| 14 | +$REBAR3_NIGHTLY="" | |
| 15 | +If ( $VSN -eq "nightly" ) | |
| 16 | +{ | |
| 17 | + $REBAR3_TARGET="https://s3.amazonaws.com/rebar3-nightly/rebar3" | |
| 18 | + $REBAR3_NIGHTLY=" (from nightly build)" | |
| 19 | +} | |
| 20 | +Invoke-WebRequest "$REBAR3_TARGET" -OutFile "$FILE_OUTPUT" | |
| 14 | 21 | $ProgressPreference="Continue" |
| 15 | 22 | New-Item "$DIR_FOR_BIN/bin" -ItemType Directory | Out-Null |
| 16 | 23 | Move-Item "$FILE_OUTPUT" "$DIR_FOR_BIN/bin" |
| 17 | 24 | Write-Output "& escript.exe $PWD/$DIR_FOR_BIN/bin/$FILE_OUTPUT `$args" | Out-File -FilePath "$FILE_OUTPUT_PS1" -Encoding utf8 -Append |
| 18 | 25 | type $FILE_OUTPUT_PS1 |
| 19 | 26 | Move-Item "$FILE_OUTPUT_PS1" "$DIR_FOR_BIN/bin" |
| 20 | −Write-Output "Installed rebar3 version follows" | |
| 27 | +Write-Output "Installed rebar3 version$REBAR3_NIGHTLY follows" | |
| 21 | 28 | & "$DIR_FOR_BIN/bin/rebar3" "version" | Write-Output |
modified
src/install-rebar3.sh
+8
−2
@@ -9,9 +9,15 @@ FILE_INPUT=rebar3
| 9 | 9 | FILE_OUTPUT=rebar3 |
| 10 | 10 | DIR_FOR_BIN=.setup-beam/rebar3 |
| 11 | 11 | |
| 12 | −wget -q -O "${FILE_OUTPUT}" "https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" | |
| 12 | +REBAR3_TARGET="https://github.com/erlang/rebar3/releases/download/${VSN}/${FILE_INPUT}" | |
| 13 | +REBAR3_NIGHTLY="" | |
| 14 | +if [ "${VSN}" == "nightly" ]; then | |
| 15 | + REBAR3_TARGET="https://s3.amazonaws.com/rebar3-nightly/rebar3" | |
| 16 | + REBAR3_NIGHTLY=" (from nightly build)" | |
| 17 | +fi | |
| 18 | +wget -q -O "${FILE_OUTPUT}" "${REBAR3_TARGET}" | |
| 13 | 19 | mkdir -p "${DIR_FOR_BIN}/bin" |
| 14 | 20 | chmod +x "${FILE_OUTPUT}" |
| 15 | 21 | mv "${FILE_OUTPUT}" "${DIR_FOR_BIN}/bin" |
| 16 | −echo "Installed rebar3 version follows" | |
| 22 | +echo "Installed rebar3 version$REBAR3_NIGHTLY follows" | |
| 17 | 23 | ${DIR_FOR_BIN}/bin/rebar3 version |
modified
src/setup-beam.js
+6
−1
@@ -113,9 +113,14 @@ async function maybeInstallGleam(gleamSpec) {
| 113 | 113 | |
| 114 | 114 | async function maybeInstallRebar3(rebar3Spec) { |
| 115 | 115 | let installed = false |
| 116 | + let rebar3Version | |
| 116 | 117 | |
| 117 | 118 | if (rebar3Spec) { |
| 118 | − const rebar3Version = await getRebar3Version(rebar3Spec) | |
| 119 | + if (rebar3Spec === 'nightly') { | |
| 120 | + rebar3Version = 'nightly' | |
| 121 | + } else { | |
| 122 | + rebar3Version = await getRebar3Version(rebar3Spec) | |
| 123 | + } | |
| 119 | 124 | console.log(`##[group]Installing rebar3 ${rebar3Version}`) |
| 120 | 125 | await installer.installRebar3(rebar3Version) |
| 121 | 126 | core.setOutput('rebar3-version', rebar3Version) |
Parents: e6ab310