mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-29 03:00:49 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f0cc07b4b | ||
|
|
c36fc0ca1b | ||
|
|
7c4882bbdd | ||
|
|
cdb7a12eb6 | ||
|
|
904c511e63 | ||
|
|
4f558159e6 | ||
|
|
0430fb6cc6 | ||
|
|
48f1d0ccc2 | ||
|
|
4ec4e80c33 |
@@ -1,7 +1,14 @@
|
|||||||
---
|
---
|
||||||
name: action
|
name: action
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
|
||||||
@@ -27,6 +34,7 @@ jobs:
|
|||||||
git add dist/index.js
|
git add dist/index.js
|
||||||
git commit -m "Automation: update setup-beam version output to ${SHA}"
|
git commit -m "Automation: update setup-beam version output to ${SHA}"
|
||||||
git push origin main
|
git push origin main
|
||||||
|
|
||||||
check_integrity:
|
check_integrity:
|
||||||
name: Expected local npm actions
|
name: Expected local npm actions
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
---
|
---
|
||||||
name: hexpm-mirrors
|
name: hexpm-mirrors
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
test-failing-first-mirror:
|
test-failing-first-mirror:
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
---
|
---
|
||||||
name: ubuntu
|
name: ubuntu
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
integration_test:
|
integration_test:
|
||||||
@@ -15,6 +22,8 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
combo:
|
combo:
|
||||||
|
- otp-version: 'OTP-27.0-rc1'
|
||||||
|
os: 'ubuntu-latest'
|
||||||
- otp-version: '26.0'
|
- otp-version: '26.0'
|
||||||
elixir-version: 'v1.14-otp-25'
|
elixir-version: 'v1.14-otp-25'
|
||||||
os: 'ubuntu-latest'
|
os: 'ubuntu-latest'
|
||||||
@@ -174,6 +183,7 @@ jobs:
|
|||||||
mix escript.install --force ${{matrix.combo.escript_packages}}
|
mix escript.install --force ${{matrix.combo.escript_packages}}
|
||||||
${{matrix.combo.escript_script}}
|
${{matrix.combo.escript_script}}
|
||||||
if: ${{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}}
|
||||||
|
|||||||
@@ -1,7 +1,14 @@
|
|||||||
---
|
---
|
||||||
name: windows
|
name: windows
|
||||||
|
|
||||||
on: [push, workflow_dispatch]
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
pull_request:
|
||||||
|
branches:
|
||||||
|
- "*"
|
||||||
|
workflow_dispatch: {}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
integration_test:
|
integration_test:
|
||||||
@@ -15,6 +22,8 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
combo:
|
combo:
|
||||||
|
- otp-version: 'OTP-27.0-rc1'
|
||||||
|
os: 'windows-latest'
|
||||||
- otp-version: '26.0'
|
- otp-version: '26.0'
|
||||||
elixir-version: 'main'
|
elixir-version: 'main'
|
||||||
os: 'windows-latest'
|
os: 'windows-latest'
|
||||||
@@ -112,6 +121,7 @@ jobs:
|
|||||||
mix escript.install --force ${{matrix.combo.escript_packages}}
|
mix escript.install --force ${{matrix.combo.escript_packages}}
|
||||||
${{matrix.combo.escript_script}}
|
${{matrix.combo.escript_script}}
|
||||||
if: ${{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}}
|
||||||
|
|||||||
+1
-1
@@ -118,7 +118,7 @@ THE SOFTWARE.
|
|||||||
|
|
||||||
-----
|
-----
|
||||||
|
|
||||||
The following software may be included in this product: @fastify/busboy. A copy of the source code may be downloaded from https://github.com/fastify/busboy.git. This software contains the following license and notice below:
|
The following software may be included in this product: @fastify/busboy. A copy of the source code may be downloaded from git+https://github.com/fastify/busboy.git. This software contains the following license and notice below:
|
||||||
|
|
||||||
Copyright Brian White. All rights reserved.
|
Copyright Brian White. All rights reserved.
|
||||||
|
|
||||||
|
|||||||
@@ -53,9 +53,9 @@ and Erlang/OTP.
|
|||||||
|- |- |-
|
|- |- |-
|
||||||
| ubuntu-18.04 | 17 - 25 | ✅
|
| ubuntu-18.04 | 17 - 25 | ✅
|
||||||
| ubuntu-20.04 | 20 - 25 | ✅
|
| ubuntu-20.04 | 20 - 25 | ✅
|
||||||
| ubuntu-22.04 | 24.2 - 25 | ✅
|
| ubuntu-22.04 | 24.2 - 26 | ✅
|
||||||
| windows-2019 | 21* - 25 | ✅
|
| windows-2019 | 21* - 25 | ✅
|
||||||
| windows-2022 | 21* - 25 | ✅
|
| windows-2022 | 21* - 26 | ✅
|
||||||
|
|
||||||
**Note** *: prior to 23, Windows builds are only available for minor versions, e.g. 21.0, 21.3, 22.0, etc.
|
**Note** *: prior to 23, Windows builds are only available for minor versions, e.g. 21.0, 21.3, 22.0, etc.
|
||||||
|
|
||||||
@@ -122,11 +122,11 @@ with the following correspondence.
|
|||||||
#### `.tool-versions` format
|
#### `.tool-versions` format
|
||||||
|
|
||||||
| YML | `.tool-versions` |
|
| YML | `.tool-versions` |
|
||||||
|- |-
|
|- |- |
|
||||||
| `otp-version` | `erlang`
|
| `otp-version` | `erlang` |
|
||||||
| `elixir-version` | `elixir`
|
| `elixir-version` | `elixir` |
|
||||||
| `gleam-version` | `gleam`
|
| `gleam-version` | `gleam` |
|
||||||
| `rebar3-version` | `rebar`
|
| `rebar3-version` | `rebar` |
|
||||||
|
|
||||||
### Example (Erlang/OTP + Elixir, on Ubuntu)
|
### Example (Erlang/OTP + Elixir, on Ubuntu)
|
||||||
|
|
||||||
@@ -248,7 +248,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: erlef/setup-beam@v1
|
- uses: erlef/setup-beam@v1
|
||||||
with:
|
with:
|
||||||
otp-version: '25'
|
otp-version: '26'
|
||||||
# Use `cdn.jsdelivr.net/hex` as an alternative to `builds.hex.pm`
|
# Use `cdn.jsdelivr.net/hex` as an alternative to `builds.hex.pm`
|
||||||
hexpm-mirrors: https://cdn.jsdelivr.net/hex
|
hexpm-mirrors: https://cdn.jsdelivr.net/hex
|
||||||
```
|
```
|
||||||
@@ -266,7 +266,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v4
|
- uses: actions/checkout@v4
|
||||||
- uses: erlef/setup-beam@v1
|
- uses: erlef/setup-beam@v1
|
||||||
with:
|
with:
|
||||||
otp-version: '25'
|
otp-version: '26'
|
||||||
hexpm-mirrors: |
|
hexpm-mirrors: |
|
||||||
https://builds.hex.pm
|
https://builds.hex.pm
|
||||||
https://cdn.jsdelivr.net/hex
|
https://cdn.jsdelivr.net/hex
|
||||||
|
|||||||
Vendored
+21
-11
@@ -9885,7 +9885,7 @@ async function main() {
|
|||||||
await maybeInstallRebar3(rebar3Spec)
|
await maybeInstallRebar3(rebar3Spec)
|
||||||
|
|
||||||
// undefined is replaced by a function, post- main branch merge
|
// undefined is replaced by a function, post- main branch merge
|
||||||
const setupBeamVersion = 'eb31c4c'
|
const setupBeamVersion = 'c36fc0c'
|
||||||
core.setOutput('setup-beam-version', setupBeamVersion)
|
core.setOutput('setup-beam-version', setupBeamVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -10422,7 +10422,7 @@ alongside ${alternativeName}=${alternativeValue} \
|
|||||||
}
|
}
|
||||||
|
|
||||||
function parseVersionFile(versionFilePath0) {
|
function parseVersionFile(versionFilePath0) {
|
||||||
const versionFilePath = path.join(
|
const versionFilePath = path.resolve(
|
||||||
process.env.GITHUB_WORKSPACE,
|
process.env.GITHUB_WORKSPACE,
|
||||||
versionFilePath0,
|
versionFilePath0,
|
||||||
)
|
)
|
||||||
@@ -10562,8 +10562,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'erl'
|
const cmd = 'erl'
|
||||||
const args = ['-version']
|
const args = ['-version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
win32: {
|
win32: {
|
||||||
@@ -10579,8 +10580,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'erl.exe'
|
const cmd = 'erl.exe'
|
||||||
const args = ['+V']
|
const args = ['+V']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -10608,8 +10610,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'elixir'
|
const cmd = 'elixir'
|
||||||
const args = ['-v']
|
const args = ['-v']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -10648,8 +10651,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'gleam'
|
const cmd = 'gleam'
|
||||||
const args = ['--version']
|
const args = ['--version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
win32: {
|
win32: {
|
||||||
@@ -10681,8 +10685,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'gleam.exe'
|
const cmd = 'gleam.exe'
|
||||||
const args = ['--version']
|
const args = ['--version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -10713,8 +10718,12 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'rebar3'
|
const cmd = 'rebar3'
|
||||||
const args = ['version']
|
const args = ['version']
|
||||||
|
const env = {
|
||||||
|
REBAR_GLOBAL_CONFIG_DIR: '/fake-dir',
|
||||||
|
REBAR_CONFIG: 'fake.config',
|
||||||
|
}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
win32: {
|
win32: {
|
||||||
@@ -10749,8 +10758,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'rebar3.cmd'
|
const cmd = 'rebar3.cmd'
|
||||||
const args = ['version']
|
const args = ['version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -10804,8 +10814,8 @@ async function installTool(opts) {
|
|||||||
core.exportVariable(installDirForVarName, runnerToolPath)
|
core.exportVariable(installDirForVarName, runnerToolPath)
|
||||||
|
|
||||||
core.info(`Installed ${installOpts.tool} version`)
|
core.info(`Installed ${installOpts.tool} version`)
|
||||||
const [cmd, args] = platformOpts.reportVersion()
|
const [cmd, args, env] = platformOpts.reportVersion()
|
||||||
await exec(cmd, args)
|
await exec(cmd, args, { env: { ...process.env, ...env } })
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkPlatform() {
|
function checkPlatform() {
|
||||||
|
|||||||
+21
-11
@@ -49,7 +49,7 @@ async function main() {
|
|||||||
await maybeInstallRebar3(rebar3Spec)
|
await maybeInstallRebar3(rebar3Spec)
|
||||||
|
|
||||||
// undefined is replaced by a function, post- main branch merge
|
// undefined is replaced by a function, post- main branch merge
|
||||||
const setupBeamVersion = 'eb31c4c'
|
const setupBeamVersion = 'c36fc0c'
|
||||||
core.setOutput('setup-beam-version', setupBeamVersion)
|
core.setOutput('setup-beam-version', setupBeamVersion)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -591,7 +591,7 @@ alongside ${alternativeName}=${alternativeValue} \
|
|||||||
}
|
}
|
||||||
|
|
||||||
function parseVersionFile(versionFilePath0) {
|
function parseVersionFile(versionFilePath0) {
|
||||||
const versionFilePath = path.join(
|
const versionFilePath = path.resolve(
|
||||||
process.env.GITHUB_WORKSPACE,
|
process.env.GITHUB_WORKSPACE,
|
||||||
versionFilePath0,
|
versionFilePath0,
|
||||||
)
|
)
|
||||||
@@ -731,8 +731,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'erl'
|
const cmd = 'erl'
|
||||||
const args = ['-version']
|
const args = ['-version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
win32: {
|
win32: {
|
||||||
@@ -748,8 +749,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'erl.exe'
|
const cmd = 'erl.exe'
|
||||||
const args = ['+V']
|
const args = ['+V']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -777,8 +779,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'elixir'
|
const cmd = 'elixir'
|
||||||
const args = ['-v']
|
const args = ['-v']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -817,8 +820,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'gleam'
|
const cmd = 'gleam'
|
||||||
const args = ['--version']
|
const args = ['--version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
win32: {
|
win32: {
|
||||||
@@ -850,8 +854,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'gleam.exe'
|
const cmd = 'gleam.exe'
|
||||||
const args = ['--version']
|
const args = ['--version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -882,8 +887,12 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'rebar3'
|
const cmd = 'rebar3'
|
||||||
const args = ['version']
|
const args = ['version']
|
||||||
|
const env = {
|
||||||
|
REBAR_GLOBAL_CONFIG_DIR: '/fake-dir',
|
||||||
|
REBAR_CONFIG: 'fake.config',
|
||||||
|
}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
win32: {
|
win32: {
|
||||||
@@ -918,8 +927,9 @@ async function install(toolName, opts) {
|
|||||||
reportVersion: () => {
|
reportVersion: () => {
|
||||||
const cmd = 'rebar3.cmd'
|
const cmd = 'rebar3.cmd'
|
||||||
const args = ['version']
|
const args = ['version']
|
||||||
|
const env = {}
|
||||||
|
|
||||||
return [cmd, args]
|
return [cmd, args, env]
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -973,8 +983,8 @@ async function installTool(opts) {
|
|||||||
core.exportVariable(installDirForVarName, runnerToolPath)
|
core.exportVariable(installDirForVarName, runnerToolPath)
|
||||||
|
|
||||||
core.info(`Installed ${installOpts.tool} version`)
|
core.info(`Installed ${installOpts.tool} version`)
|
||||||
const [cmd, args] = platformOpts.reportVersion()
|
const [cmd, args, env] = platformOpts.reportVersion()
|
||||||
await exec(cmd, args)
|
await exec(cmd, args, { env: { ...process.env, ...env } })
|
||||||
}
|
}
|
||||||
|
|
||||||
function checkPlatform() {
|
function checkPlatform() {
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ simulateInput('hexpm-mirrors', 'https://builds.hex.pm', { multiline: true })
|
|||||||
|
|
||||||
const assert = require('assert')
|
const assert = require('assert')
|
||||||
const fs = require('fs')
|
const fs = require('fs')
|
||||||
|
const os = require('os')
|
||||||
|
const path = require('path')
|
||||||
const core = require('@actions/core')
|
const core = require('@actions/core')
|
||||||
const setupBeam = require('../src/setup-beam')
|
const setupBeam = require('../src/setup-beam')
|
||||||
const { problemMatcher } = require('../matchers/elixir-matchers.json')
|
const { problemMatcher } = require('../matchers/elixir-matchers.json')
|
||||||
@@ -535,6 +537,14 @@ rebar ${rebar3}`
|
|||||||
assert.strictEqual(appVersions.get('erlang'), erlang)
|
assert.strictEqual(appVersions.get('erlang'), erlang)
|
||||||
assert.strictEqual(appVersions.get('elixir'), elixir)
|
assert.strictEqual(appVersions.get('elixir'), elixir)
|
||||||
|
|
||||||
|
const absoluteFilename = path.join(os.tmpdir(), '.tool-versions')
|
||||||
|
fs.writeFileSync(absoluteFilename, toolVersions)
|
||||||
|
|
||||||
|
process.env.GITHUB_WORKSPACE = process.cwd()
|
||||||
|
const absoluteAppVersions = setupBeam.parseVersionFile(absoluteFilename)
|
||||||
|
assert.strictEqual(absoluteAppVersions.get('erlang'), erlang)
|
||||||
|
assert.strictEqual(absoluteAppVersions.get('elixir'), elixir)
|
||||||
|
|
||||||
assert.ok(async () => {
|
assert.ok(async () => {
|
||||||
await setupBeam.install('otp', { toolVersion: erlang })
|
await setupBeam.install('otp', { toolVersion: erlang })
|
||||||
})
|
})
|
||||||
|
|||||||
Reference in New Issue
Block a user