Allow using rebar3 nightly builds (#84)

c71c5c9 · Paulo F. Oliveira · 2022-01-12 14:25

14 files +55 -13

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