mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-23 15:16:08 +00:00
Improve warning message for missing ImageOS env. variable (self-hosted runners) (#59)
This commit is contained in:
committed by
GitHub
parent
830642517c
commit
9283f857f1
@@ -17,7 +17,7 @@ jobs:
|
|||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with:
|
with:
|
||||||
node-version: '12'
|
node-version: 12
|
||||||
- run: npm install -g npm
|
- run: npm install -g npm
|
||||||
- run: npm install
|
- run: npm install
|
||||||
- run: npm run build
|
- run: npm run build
|
||||||
@@ -31,12 +31,24 @@ jobs:
|
|||||||
- name: Check if build left artifacts
|
- name: Check if build left artifacts
|
||||||
run: git diff --exit-code
|
run: git diff --exit-code
|
||||||
|
|
||||||
unit_test:
|
unit_tests_ubuntu:
|
||||||
name: Unit tests
|
name: Unit tests (Ubuntu)
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- uses: actions/setup-node@v1
|
- uses: actions/setup-node@v1
|
||||||
with: {node-version: '12'}
|
with:
|
||||||
|
node-version: 12
|
||||||
- run: npm ci
|
- run: npm ci
|
||||||
- run: npm test
|
- run: npm test
|
||||||
|
|
||||||
|
unit_tests_windows:
|
||||||
|
name: Unit tests (Windows)
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: actions/setup-node@v1
|
||||||
|
with:
|
||||||
|
node-version: 12
|
||||||
|
- run: npm install --production
|
||||||
|
- run: npm test
|
||||||
|
|||||||
@@ -53,6 +53,35 @@ and Erlang/OTP.
|
|||||||
|
|
||||||
**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.
|
||||||
|
|
||||||
|
### Self-hosted runners
|
||||||
|
|
||||||
|
Self-hosted runners need to set env. variable `ImageOS` to one of the following, since the action
|
||||||
|
uses that to download assets:
|
||||||
|
|
||||||
|
| ImageOS | Operating system
|
||||||
|
|- |-
|
||||||
|
| ubuntu16 | ubuntu-16.04
|
||||||
|
| ubuntu18 | ubuntu-18.04
|
||||||
|
| ubuntu20 | ubuntu-20.04
|
||||||
|
| win16 | windows-2016
|
||||||
|
| win19 | windows-2019
|
||||||
|
|
||||||
|
as per the following example:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
...
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: self-hosted
|
||||||
|
env:
|
||||||
|
ImageOS: ubuntu20 # equivalent to runs-on ubuntu-20.04
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: erlef/setup-beam@v1
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
### Basic example (Erlang/OTP + Elixir, on Ubuntu)
|
### Basic example (Erlang/OTP + Elixir, on Ubuntu)
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
|||||||
@@ -136,7 +136,7 @@ async function testOTPVersions() {
|
|||||||
|
|
||||||
spec = '23.2.x'
|
spec = '23.2.x'
|
||||||
osVersion = 'windows-2016'
|
osVersion = 'windows-2016'
|
||||||
expected = '23.2.7.4'
|
expected = '23.2.7'
|
||||||
got = await setupBeam.getOTPVersion(spec, osVersion)
|
got = await setupBeam.getOTPVersion(spec, osVersion)
|
||||||
assert.deepStrictEqual(got, expected)
|
assert.deepStrictEqual(got, expected)
|
||||||
|
|
||||||
|
|||||||
Vendored
+12
-1
@@ -5001,8 +5001,19 @@ function getRunnerOSVersion() {
|
|||||||
win16: 'windows-2016',
|
win16: 'windows-2016',
|
||||||
win19: 'windows-2019',
|
win19: 'windows-2019',
|
||||||
}
|
}
|
||||||
|
const containerFromEnvImageOS = ImageOSToContainer[process.env.ImageOS]
|
||||||
|
|
||||||
return ImageOSToContainer[process.env.ImageOS]
|
if (!containerFromEnvImageOS) {
|
||||||
|
throw new Error(
|
||||||
|
"Tried to map a target OS from env. variable 'ImageOS', but failed. If you're using a " +
|
||||||
|
"self-hosted runner, you should set 'env': 'ImageOS': ... to one of the following: " +
|
||||||
|
"['" +
|
||||||
|
`${Object.keys(ImageOSToContainer).join("', '")}` +
|
||||||
|
"']",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return containerFromEnvImageOS
|
||||||
}
|
}
|
||||||
|
|
||||||
async function get(url0, pageIdxs) {
|
async function get(url0, pageIdxs) {
|
||||||
|
|||||||
+12
-1
@@ -345,8 +345,19 @@ function getRunnerOSVersion() {
|
|||||||
win16: 'windows-2016',
|
win16: 'windows-2016',
|
||||||
win19: 'windows-2019',
|
win19: 'windows-2019',
|
||||||
}
|
}
|
||||||
|
const containerFromEnvImageOS = ImageOSToContainer[process.env.ImageOS]
|
||||||
|
|
||||||
return ImageOSToContainer[process.env.ImageOS]
|
if (!containerFromEnvImageOS) {
|
||||||
|
throw new Error(
|
||||||
|
"Tried to map a target OS from env. variable 'ImageOS', but failed. If you're using a " +
|
||||||
|
"self-hosted runner, you should set 'env': 'ImageOS': ... to one of the following: " +
|
||||||
|
"['" +
|
||||||
|
`${Object.keys(ImageOSToContainer).join("', '")}` +
|
||||||
|
"']",
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
return containerFromEnvImageOS
|
||||||
}
|
}
|
||||||
|
|
||||||
async function get(url0, pageIdxs) {
|
async function get(url0, pageIdxs) {
|
||||||
|
|||||||
Reference in New Issue
Block a user