Ease Elixir escripts execution by adding ${HOME}/.mix/escripts to path (#153)

* feat: add escripts to path

* Update src/install-elixir.ps1

Co-authored-by: Paulo F. Oliveira <paulo.ferraz.oliveira@gmail.com>

* add github action combo to test escript

* force install

* use os homedir for escript install path

Co-authored-by: Paulo F. Oliveira <paulo.ferraz.oliveira@gmail.com>
This commit is contained in:
Blake Kostner
2022-11-22 15:39:36 -07:00
committed by GitHub
parent c373088147
commit b980a5ac9b
8 changed files with 34 additions and 0 deletions
+10
View File
@@ -134,6 +134,11 @@ jobs:
otp-version: '24' otp-version: '24'
os: 'ubuntu-latest' os: 'ubuntu-latest'
disable_problem_matchers: true disable_problem_matchers: true
- elixir-version: 'v1.13'
otp-version: '24'
escript_packages: 'hex protobuf'
escript_script: 'protoc-gen-elixir --version'
os: 'ubuntu-latest'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
@@ -184,6 +189,11 @@ jobs:
cd test-projects/gleam_gleam cd test-projects/gleam_gleam
gleam test gleam test
if: ${{ matrix.combo.gleam-version && matrix.combo.otp-version && !matrix.combo.rebar3-version }} if: ${{ matrix.combo.gleam-version && matrix.combo.otp-version && !matrix.combo.rebar3-version }}
- name: Run escript
run: |
mix escript.install --force ${{matrix.combo.escript_packages}}
${{matrix.combo.escript_script}}
if: ${{matrix.combo.escript_packages && matrix.combo.escript_script}}
environment_variables: environment_variables:
name: Environment variables name: Environment variables
runs-on: ${{matrix.combo.os}} runs-on: ${{matrix.combo.os}}
+10
View File
@@ -45,6 +45,11 @@ jobs:
otp-version: '24' otp-version: '24'
rebar3-version: '3.16' rebar3-version: '3.16'
os: 'windows-latest' os: 'windows-latest'
- elixir-version: 'v1.13'
otp-version: '24'
escript_packages: 'hex protobuf'
escript_script: 'protoc-gen-elixir --version'
os: 'windows-latest'
steps: steps:
- uses: actions/checkout@v3 - uses: actions/checkout@v3
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
@@ -82,6 +87,11 @@ jobs:
cd test-projects/erlang_rebar3 cd test-projects/erlang_rebar3
rebar3 ct rebar3 ct
if: ${{matrix.combo.rebar3-version}} if: ${{matrix.combo.rebar3-version}}
- name: Run escript
run: |
mix escript.install --force ${{matrix.combo.escript_packages}}
${{matrix.combo.escript_script}}
if: ${{matrix.combo.escript_packages && matrix.combo.escript_script}}
environment_variables: environment_variables:
name: Environment variables name: Environment variables
runs-on: ${{matrix.combo.os}} runs-on: ${{matrix.combo.os}}
+2
View File
@@ -7193,6 +7193,7 @@ module.exports = {
const core = __nccwpck_require__(2186) const core = __nccwpck_require__(2186)
const { exec } = __nccwpck_require__(1514) const { exec } = __nccwpck_require__(1514)
const os = __nccwpck_require__(2037)
const path = __nccwpck_require__(1017) const path = __nccwpck_require__(1017)
const semver = __nccwpck_require__(1383) const semver = __nccwpck_require__(1383)
const https = __nccwpck_require__(5687) const https = __nccwpck_require__(5687)
@@ -7269,6 +7270,7 @@ async function maybeInstallElixir(elixirSpec, otpVersion) {
`##[add-matcher]${path.join(matchersPath, 'elixir-matchers.json')}`, `##[add-matcher]${path.join(matchersPath, 'elixir-matchers.json')}`,
) )
} }
core.addPath(`${os.homedir()}/.mix/escripts`)
core.addPath(`${process.env.RUNNER_TEMP}/.setup-beam/elixir/bin`) core.addPath(`${process.env.RUNNER_TEMP}/.setup-beam/elixir/bin`)
console.log('##[endgroup]') console.log('##[endgroup]')
+3
View File
@@ -18,4 +18,7 @@ $ProgressPreference="Continue"
Write-Output "Installed Elixir version follows" Write-Output "Installed Elixir version follows"
& "${DIR_FOR_BIN}/bin/elixir" "-v" | Write-Output & "${DIR_FOR_BIN}/bin/elixir" "-v" | Write-Output
$ProgressPreference="Continue"
New-Item "%UserProfile%/.mix/escripts" -ItemType Directory | Out-Null
"INSTALL_DIR_FOR_ELIXIR=${Env:RUNNER_TEMP}/${DIR_FOR_BIN}" | Out-File -FilePath ${Env:GITHUB_ENV} -Encoding utf8 -Append "INSTALL_DIR_FOR_ELIXIR=${Env:RUNNER_TEMP}/${DIR_FOR_BIN}" | Out-File -FilePath ${Env:GITHUB_ENV} -Encoding utf8 -Append
+2
View File
@@ -15,4 +15,6 @@ unzip -q -o -d "${DIR_FOR_BIN}" "${FILE_OUTPUT}"
echo "Installed Elixir version follows" echo "Installed Elixir version follows"
${DIR_FOR_BIN}/bin/elixir -v ${DIR_FOR_BIN}/bin/elixir -v
mkdir -p "${HOME}/.mix/escripts"
echo "INSTALL_DIR_FOR_ELIXIR=${RUNNER_TEMP}/${DIR_FOR_BIN}" >> "${GITHUB_ENV}" echo "INSTALL_DIR_FOR_ELIXIR=${RUNNER_TEMP}/${DIR_FOR_BIN}" >> "${GITHUB_ENV}"
+3
View File
@@ -18,4 +18,7 @@ $ProgressPreference="Continue"
Write-Output "Installed Elixir version follows" Write-Output "Installed Elixir version follows"
& "${DIR_FOR_BIN}/bin/elixir" "-v" | Write-Output & "${DIR_FOR_BIN}/bin/elixir" "-v" | Write-Output
$ProgressPreference="Continue"
New-Item "%UserProfile%/.mix/escripts" -ItemType Directory | Out-Null
"INSTALL_DIR_FOR_ELIXIR=${Env:RUNNER_TEMP}/${DIR_FOR_BIN}" | Out-File -FilePath ${Env:GITHUB_ENV} -Encoding utf8 -Append "INSTALL_DIR_FOR_ELIXIR=${Env:RUNNER_TEMP}/${DIR_FOR_BIN}" | Out-File -FilePath ${Env:GITHUB_ENV} -Encoding utf8 -Append
+2
View File
@@ -15,4 +15,6 @@ unzip -q -o -d "${DIR_FOR_BIN}" "${FILE_OUTPUT}"
echo "Installed Elixir version follows" echo "Installed Elixir version follows"
${DIR_FOR_BIN}/bin/elixir -v ${DIR_FOR_BIN}/bin/elixir -v
mkdir -p "${HOME}/.mix/escripts"
echo "INSTALL_DIR_FOR_ELIXIR=${RUNNER_TEMP}/${DIR_FOR_BIN}" >> "${GITHUB_ENV}" echo "INSTALL_DIR_FOR_ELIXIR=${RUNNER_TEMP}/${DIR_FOR_BIN}" >> "${GITHUB_ENV}"
+2
View File
@@ -1,5 +1,6 @@
const core = require('@actions/core') const core = require('@actions/core')
const { exec } = require('@actions/exec') const { exec } = require('@actions/exec')
const os = require('os')
const path = require('path') const path = require('path')
const semver = require('semver') const semver = require('semver')
const https = require('https') const https = require('https')
@@ -76,6 +77,7 @@ async function maybeInstallElixir(elixirSpec, otpVersion) {
`##[add-matcher]${path.join(matchersPath, 'elixir-matchers.json')}`, `##[add-matcher]${path.join(matchersPath, 'elixir-matchers.json')}`,
) )
} }
core.addPath(`${os.homedir()}/.mix/escripts`)
core.addPath(`${process.env.RUNNER_TEMP}/.setup-beam/elixir/bin`) core.addPath(`${process.env.RUNNER_TEMP}/.setup-beam/elixir/bin`)
console.log('##[endgroup]') console.log('##[endgroup]')