Compare commits

..
1 Commits
Author SHA1 Message Date
Jonatan Männchen 91bce83a29 Add win11-arm64 to ImageOS mapping 2026-05-05 08:14:33 +02:00
14 changed files with 17485 additions and 1047 deletions
+7 -6
View File
@@ -24,7 +24,7 @@ jobs:
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Version it! - name: Version it!
run: | run: |
# We expect a string such as const setupBeamVersion = 'undefined' in the code # We expect a string such as const setupBeamVersion = 'undefined' in the code
@@ -45,7 +45,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.ref != 'refs/heads/main' if: github.ref != 'refs/heads/main'
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- uses: actions/setup-node@v6.3.0 - uses: actions/setup-node@v6.3.0
with: with:
node-version: '24' node-version: '24'
@@ -58,7 +58,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
if: github.ref != 'refs/heads/main' if: github.ref != 'refs/heads/main'
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- uses: raven-actions/actionlint@v2.1.2 - uses: raven-actions/actionlint@v2.1.2
unit_tests_ubuntu: unit_tests_ubuntu:
@@ -70,7 +70,7 @@ jobs:
- ubuntu-latest # x86_64 - ubuntu-latest # x86_64
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- uses: actions/setup-node@v6.3.0 - uses: actions/setup-node@v6.3.0
with: with:
node-version: '24' node-version: '24'
@@ -92,10 +92,11 @@ jobs:
strategy: strategy:
matrix: matrix:
os: os:
- windows-11-arm # ARM64
- windows-latest # x86_64 - windows-latest # x86_64
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- uses: actions/setup-node@v6.3.0 - uses: actions/setup-node@v6.3.0
with: with:
node-version: '24' node-version: '24'
@@ -121,7 +122,7 @@ jobs:
- macos-15-intel # x86_64 - macos-15-intel # x86_64
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- uses: actions/setup-node@v6.3.0 - uses: actions/setup-node@v6.3.0
with: with:
node-version: '24' node-version: '24'
+1 -1
View File
@@ -26,7 +26,7 @@ jobs:
install-rebar: [true, false] install-rebar: [true, false]
install-hex: [true, false] install-hex: [true, false]
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
+13 -21
View File
@@ -16,7 +16,6 @@ on:
jobs: jobs:
integration_test: integration_test:
name: > name: >
OS ${{matrix.combo.os}},
OTP ${{matrix.combo.otp-version}}, OTP ${{matrix.combo.otp-version}},
Elixir ${{matrix.combo.elixir-version}}, Elixir ${{matrix.combo.elixir-version}},
rebar3 ${{matrix.combo.rebar3-version}} rebar3 ${{matrix.combo.rebar3-version}}
@@ -25,22 +24,6 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
combo: combo:
# macOS 14 - per README
- otp-version: '25'
os: 'macos-14'
- otp-version: '29'
os: 'macos-14'
# macOS 15 - per README
- otp-version: '25'
os: 'macos-15'
- otp-version: '29'
os: 'macos-15'
# macOS 26 - per README
- otp-version: '25'
os: 'macos-26'
- otp-version: '29'
os: 'macos-26'
# macOS latest
- otp-version: '27' - otp-version: '27'
elixir-version: 'v1.17.0' elixir-version: 'v1.17.0'
rebar3-version: '3.23' rebar3-version: '3.23'
@@ -60,13 +43,22 @@ jobs:
elixir-version: '1.14.3' elixir-version: '1.14.3'
os: 'macos-latest' os: 'macos-latest'
version-type: 'strict' version-type: 'strict'
- otp-version: '25'
os: 'macos-15'
- otp-version: '27'
elixir-version: '1.18'
os: 'macos-26'
- otp-version: '26'
elixir-version: '1.16'
rebar3-version: '3.25'
os: 'macos-14'
- otp-version: '25.0' - otp-version: '25.0'
elixir-version: 'v1.16.3-otp-25' elixir-version: 'v1.13.4-otp-25'
rebar3-version: '3.18.0' rebar3-version: '3.18.0'
os: 'macos-latest' os: 'macos-latest'
version-type: 'strict' version-type: 'strict'
- otp-version: '25.0' - otp-version: '25.0'
elixir-version: 'v1.16.3' elixir-version: 'v1.13.4'
rebar3-version: '3.18.0' rebar3-version: '3.18.0'
os: 'macos-latest' os: 'macos-latest'
version-type: 'strict' version-type: 'strict'
@@ -76,7 +68,7 @@ jobs:
rebar3-version: 'latest' rebar3-version: 'latest'
os: 'macos-latest' os: 'macos-latest'
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
@@ -129,7 +121,7 @@ jobs:
rebar3-version: 3.24 rebar3-version: 3.24
os: macos-latest os: macos-latest
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
+17 -19
View File
@@ -16,7 +16,6 @@ on:
jobs: jobs:
integration_test: integration_test:
name: > name: >
OS ${{matrix.combo.os}},
OTP ${{matrix.combo.otp-version}}, OTP ${{matrix.combo.otp-version}},
Elixir ${{matrix.combo.elixir-version}}, Elixir ${{matrix.combo.elixir-version}},
Gleam ${{matrix.combo.gleam-version}}, Gleam ${{matrix.combo.gleam-version}},
@@ -26,22 +25,15 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
combo: combo:
# Ubuntu 22.04 - per README - otp-version: '<26'
- otp-version: '24.2' elixir-version: '<1.17'
os: 'ubuntu-22.04' os: 'ubuntu-22.04'
- otp-version: '29' - otp-version: 'master'
os: 'ubuntu-22.04' elixir-version: '> 0'
# Ubuntu 24.04 - per README
- otp-version: '24.3'
os: 'ubuntu-24.04' os: 'ubuntu-24.04'
- otp-version: '29' - otp-version: 'master'
elixir-version: 'main'
os: 'ubuntu-24.04' os: 'ubuntu-24.04'
# Ubuntu 26.04 - per README
- otp-version: '26'
os: 'ubuntu-26.04'
- otp-version: '29'
os: 'ubuntu-26.04'
# Ubuntu latest
- otp-version: '27' - otp-version: '27'
elixir-version: 'v1.17.0' elixir-version: 'v1.17.0'
rebar3-version: '3.23' rebar3-version: '3.23'
@@ -61,13 +53,19 @@ jobs:
elixir-version: '1.14.3' elixir-version: '1.14.3'
os: 'ubuntu-latest' os: 'ubuntu-latest'
version-type: 'strict' version-type: 'strict'
- otp-version: '25'
os: 'ubuntu-24.04'
- otp-version: '26'
elixir-version: '1.16'
rebar3-version: '3.25'
os: 'ubuntu-22.04'
- otp-version: '25.0' - otp-version: '25.0'
elixir-version: 'v1.16.2-otp-25' elixir-version: 'v1.13.4-otp-25'
rebar3-version: '3.18.0' rebar3-version: '3.18.0'
os: 'ubuntu-latest' os: 'ubuntu-latest'
version-type: 'strict' version-type: 'strict'
- otp-version: '25.0' - otp-version: '25.0'
elixir-version: 'v1.16.3' elixir-version: 'v1.13.4'
rebar3-version: '3.18.0' rebar3-version: '3.18.0'
os: 'ubuntu-latest' os: 'ubuntu-latest'
version-type: 'strict' version-type: 'strict'
@@ -82,13 +80,13 @@ jobs:
otp-version: false otp-version: false
os: 'ubuntu-latest' os: 'ubuntu-latest'
disable_problem_matchers: true disable_problem_matchers: true
- elixir-version: 'v1.16' - elixir-version: 'v1.13'
otp-version: '24' otp-version: '24'
escript_packages: 'hex protobuf' escript_packages: 'hex protobuf'
escript_script: 'protoc-gen-elixir --version' escript_script: 'protoc-gen-elixir --version'
os: 'ubuntu-latest' os: 'ubuntu-latest'
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
@@ -156,7 +154,7 @@ jobs:
rebar3-version: 3.24 rebar3-version: 3.24
os: ubuntu-latest os: ubuntu-latest
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
@@ -15,7 +15,7 @@ jobs:
name: Update 3rd party licenses name: Update 3rd party licenses
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- run: - run:
./.github/workflows/update_3rd_party_licenses.sh ./.github/workflows/update_3rd_party_licenses.sh
env: env:
+14 -17
View File
@@ -16,7 +16,6 @@ on:
jobs: jobs:
integration_test: integration_test:
name: > name: >
OS ${{matrix.combo.os}},
OTP ${{matrix.combo.otp-version}}, OTP ${{matrix.combo.otp-version}},
Elixir ${{matrix.combo.elixir-version}}, Elixir ${{matrix.combo.elixir-version}},
Gleam ${{matrix.combo.gleam-version}}, Gleam ${{matrix.combo.gleam-version}},
@@ -26,20 +25,12 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
combo: combo:
# Windows 2022 - per README
- otp-version: '26' # 21 is "so old", at this moment, we can't find it in latest 100
os: 'windows-2022'
- otp-version: '29'
os: 'windows-2022'
# Windows 2025 - per README
- otp-version: '26' # 21 is "so old", at this moment, we can't find it in latest 100
os: 'windows-2025'
- otp-version: '29'
os: 'windows-2025'
# Windows latest
- otp-version: '<26' - otp-version: '<26'
elixir-version: '<1.17' elixir-version: '<1.17'
os: 'windows-latest' os: 'ubuntu-22.04'
- otp-version: 'master'
elixir-version: '> 0'
os: 'ubuntu-24.04'
- otp-version: '27' - otp-version: '27'
elixir-version: 'v1.17.0' elixir-version: 'v1.17.0'
rebar3-version: '3.23' rebar3-version: '3.23'
@@ -56,24 +47,30 @@ jobs:
elixir-version: '1.14.5' elixir-version: '1.14.5'
os: 'windows-latest' os: 'windows-latest'
version-type: 'strict' version-type: 'strict'
- otp-version: '24.0.2'
rebar3-version: '3.16'
os: 'windows-2022'
- otp-version: '23.0'
rebar3-version: '3.15'
os: 'windows-2022'
- elixir-version: 'v1.10' - elixir-version: 'v1.10'
otp-version: '23' otp-version: '23'
rebar3-version: '3.14' rebar3-version: '3.14'
os: 'windows-latest' os: 'windows-latest'
- elixir-version: 'v1.16' - elixir-version: 'v1.13'
otp-version: '24' otp-version: '24'
rebar3-version: '3.15' rebar3-version: '3.15'
os: 'windows-latest' os: 'windows-latest'
- gleam-version: '1.9.0' - gleam-version: '1.9.0'
otp-version: '27' otp-version: '27'
os: 'windows-latest' os: 'windows-latest'
- elixir-version: 'v1.16' - elixir-version: 'v1.13'
otp-version: '24' otp-version: '24'
escript_packages: 'hex protobuf' escript_packages: 'hex protobuf'
escript_script: 'protoc-gen-elixir --version' escript_script: 'protoc-gen-elixir --version'
os: 'windows-latest' os: 'windows-latest'
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
@@ -140,7 +137,7 @@ jobs:
rebar3-version: 3.24 rebar3-version: 3.24
os: windows-latest os: windows-latest
steps: steps:
- uses: actions/checkout@v7.0.0 - uses: actions/checkout@v6.0.2
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
+2 -2
View File
@@ -2266,7 +2266,7 @@ The following software may be included in this product: fflate. A copy of the so
MIT License MIT License
Copyright (c) 2026 Arjun Barrett Copyright (c) 2023 Arjun Barrett
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@@ -4276,7 +4276,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
----- -----
The following software may be included in this product: yauzl. A copy of the source code may be downloaded from https://github.com/thejoshwolfe/yauzl.git. This software contains the following license and notice below: The following software may be included in this product: yauzl. A copy of the source code may be downloaded from git+https://github.com/thejoshwolfe/yauzl.git. This software contains the following license and notice below:
The MIT License (MIT) The MIT License (MIT)
+13 -15
View File
@@ -78,16 +78,17 @@ expect to be considered the latest.
This list presents the known working version combos between the target operating system This list presents the known working version combos between the target operating system
and Erlang/OTP. and Erlang/OTP.
| Operating system | Erlang/OTP | OTP Architecture | Status | Operating system | Erlang/OTP | OTP Architecture | Status
|- |- | - |- |- |- | - |-
| `ubuntu-22.04` | 24.2 - 29 | x86_64, arm64 | ✅ | `ubuntu-22.04` | 24.2 - 28 | x86_64, arm64 | ✅
| `ubuntu-24.04` | 24.3 - 29 | x86_64, arm64 | ✅ | `ubuntu-24.04` | 24.3 - 28 | x86_64, arm64 | ✅
| `ubuntu-26.04` | 26 - 29 | x86_64, arm64 | ✅ | `windows-2019` | 21\* - 25 | x86_64, x86 | ✅
| `windows-2022` | 21\* - 29 | x86_64, x86 | ✅ | `windows-2022` | 21\* - 28 | x86_64, x86 | ✅
| `windows-2025` | 21\* - 29 | x86_64, x86 | ✅ | `windows-2025` | 21\* - 28 | x86_64, x86 | ✅
| `macOS-14` | 25 - 29 | x86_64, arm64 | ✅ | `macOS-13` | 25.0 - 28 | x86_64, arm64 | ✅
| `macOS-15` | 25 - 29 | x86_64, arm64 | ✅ | `macOS-14` | 25.0 - 28 | x86_64, arm64 | ✅
| `macOS-26` | 25 - 29 | x86_64, arm64 | ✅ | `macOS-15` | 25.0 - 28 | x86_64, arm64 | ✅
| `macOS-26` | 25.0 - 28 | x86_64, arm64 | ✅
**Note** \*: prior to 23, Windows builds are only available for minor versions, e.g. 21.0, 21.3, **Note** \*: prior to 23, Windows builds are only available for minor versions, e.g. 21.0, 21.3,
22.0, etc. 22.0, etc.
@@ -105,14 +106,11 @@ uses that to download assets:
| ImageOS | Operating system | ImageOS | Operating system
|- |- |- |-
| `ubuntu22` | `ubuntu-22.04` | `ubuntu22` | `ubuntu-22.04`
| `ubuntu22-arm64` | `ubuntu-22.04`
| `ubuntu24` | `ubuntu-24.04` | `ubuntu24` | `ubuntu-24.04`
| `ubuntu24-arm64` | `ubuntu-24.04` | `win19` | `windows-2019`
| `ubuntu26` | `ubuntu-26.04`
| `ubuntu26-arm64` | `ubuntu-26.04`
| `win22` | `windows-2022` | `win22` | `windows-2022`
| `win25` | `windows-2025` | `win25` | `windows-2025`
| `win25-vs2026` | `windows-2025` | `macos13` | `macOS-13`
| `macos14` | `macOS-14` | `macos14` | `macOS-14`
| `macos15` | `macOS-15` | `macos15` | `macOS-15`
| `macos26` | `macOS-26` | `macos26` | `macOS-26`
+17283 -19
View File
File diff suppressed because it is too large Load Diff
+37 -47
View File
@@ -11,17 +11,18 @@
"@actions/exec": "3.0.0", "@actions/exec": "3.0.0",
"@actions/tool-cache": "4.0.0", "@actions/tool-cache": "4.0.0",
"csv-parse": "6.2.1", "csv-parse": "6.2.1",
"lodash": "4.17.23",
"semver": "7.7.4", "semver": "7.7.4",
"smol-toml": "1.6.1" "smol-toml": "1.6.1"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "10.0.1", "@eslint/js": "10.0.1",
"@vercel/ncc": "0.38.4", "@vercel/ncc": "0.38.4",
"eslint": "10.6.0", "eslint": "10.1.0",
"eslint-plugin-yml": "3.3.1", "eslint-plugin-yml": "3.3.1",
"globals": "17.7.0", "globals": "17.4.0",
"markdownlint-cli": "0.48.0", "markdownlint-cli": "0.48.0",
"prettier": "3.9.1", "prettier": "3.8.1",
"shellcheck": "4.1.0", "shellcheck": "4.1.0",
"yarn": "1.22.22" "yarn": "1.22.22"
}, },
@@ -131,13 +132,13 @@
} }
}, },
"node_modules/@eslint/config-array": { "node_modules/@eslint/config-array": {
"version": "0.23.5", "version": "0.23.3",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz", "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz",
"integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==", "integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@eslint/object-schema": "^3.0.5", "@eslint/object-schema": "^3.0.3",
"debug": "^4.3.1", "debug": "^4.3.1",
"minimatch": "^10.2.4" "minimatch": "^10.2.4"
}, },
@@ -146,22 +147,22 @@
} }
}, },
"node_modules/@eslint/config-helpers": { "node_modules/@eslint/config-helpers": {
"version": "0.6.0", "version": "0.5.3",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz", "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz",
"integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==", "integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@eslint/core": "^1.2.1" "@eslint/core": "^1.1.1"
}, },
"engines": { "engines": {
"node": "^20.19.0 || ^22.13.0 || >=24" "node": "^20.19.0 || ^22.13.0 || >=24"
} }
}, },
"node_modules/@eslint/core": { "node_modules/@eslint/core": {
"version": "1.2.1", "version": "1.1.1",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz",
"integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==", "integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
@@ -193,9 +194,9 @@
} }
}, },
"node_modules/@eslint/object-schema": { "node_modules/@eslint/object-schema": {
"version": "3.0.5", "version": "3.0.3",
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz",
"integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==", "integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"engines": { "engines": {
@@ -1271,21 +1272,18 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "10.6.0", "version": "10.1.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-10.6.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz",
"integrity": "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==", "integrity": "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"workspaces": [
"packages/*"
],
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.2", "@eslint-community/regexpp": "^4.12.2",
"@eslint/config-array": "^0.23.5", "@eslint/config-array": "^0.23.3",
"@eslint/config-helpers": "^0.6.0", "@eslint/config-helpers": "^0.5.3",
"@eslint/core": "^1.2.1", "@eslint/core": "^1.1.1",
"@eslint/plugin-kit": "^0.7.2", "@eslint/plugin-kit": "^0.6.1",
"@humanfs/node": "^0.16.6", "@humanfs/node": "^0.16.6",
"@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/module-importer": "^1.0.1",
"@humanwhocodes/retry": "^0.4.2", "@humanwhocodes/retry": "^0.4.2",
@@ -1400,20 +1398,6 @@
"url": "https://opencollective.com/eslint" "url": "https://opencollective.com/eslint"
} }
}, },
"node_modules/eslint/node_modules/@eslint/plugin-kit": {
"version": "0.7.2",
"resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.7.2.tgz",
"integrity": "sha512-+CNAzxglkrpNf/kKywqQfk74QjtceuOE7Qm+AF8miRvPF/wmmK5+OJOgVh3AVTT3RP2mH3+FOaxlE5v72owk0A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
"@eslint/core": "^1.2.1",
"levn": "^0.4.1"
},
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
}
},
"node_modules/espree": { "node_modules/espree": {
"version": "11.2.0", "version": "11.2.0",
"resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz", "resolved": "https://registry.npmjs.org/espree/-/espree-11.2.0.tgz",
@@ -1751,9 +1735,9 @@
} }
}, },
"node_modules/globals": { "node_modules/globals": {
"version": "17.7.0", "version": "17.4.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-17.7.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz",
"integrity": "sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==", "integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@@ -2182,6 +2166,12 @@
"url": "https://github.com/sponsors/sindresorhus" "url": "https://github.com/sponsors/sindresorhus"
} }
}, },
"node_modules/lodash": {
"version": "4.17.23",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.23.tgz",
"integrity": "sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==",
"license": "MIT"
},
"node_modules/make-dir": { "node_modules/make-dir": {
"version": "1.3.0", "version": "1.3.0",
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
@@ -3084,9 +3074,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.9.1", "version": "3.8.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.1.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz",
"integrity": "sha512-ppiDo2CSwexck1eyZUwJHg/N3nf1+6IRCv7W/VJ5vaLnVCmB7+3CdRfMwoCHBBX6xTrREDTksZ4OZl5SSf4zXA==", "integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
+4 -3
View File
@@ -21,17 +21,18 @@
"@actions/exec": "3.0.0", "@actions/exec": "3.0.0",
"@actions/tool-cache": "4.0.0", "@actions/tool-cache": "4.0.0",
"csv-parse": "6.2.1", "csv-parse": "6.2.1",
"lodash": "4.17.23",
"semver": "7.7.4", "semver": "7.7.4",
"smol-toml": "1.6.1" "smol-toml": "1.6.1"
}, },
"devDependencies": { "devDependencies": {
"@eslint/js": "10.0.1", "@eslint/js": "10.0.1",
"@vercel/ncc": "0.38.4", "@vercel/ncc": "0.38.4",
"eslint": "10.6.0", "eslint": "10.1.0",
"eslint-plugin-yml": "3.3.1", "eslint-plugin-yml": "3.3.1",
"globals": "17.7.0", "globals": "17.4.0",
"markdownlint-cli": "0.48.0", "markdownlint-cli": "0.48.0",
"prettier": "3.9.1", "prettier": "3.8.1",
"shellcheck": "4.1.0", "shellcheck": "4.1.0",
"yarn": "1.22.22" "yarn": "1.22.22"
}, },
+10 -16
View File
@@ -7,6 +7,7 @@ import { exec } from '@actions/exec'
import * as tc from '@actions/tool-cache' import * as tc from '@actions/tool-cache'
import * as semver from 'semver' import * as semver from 'semver'
import * as csv from 'csv-parse/sync' import * as csv from 'csv-parse/sync'
import _ from 'lodash'
import toml from 'smol-toml' import toml from 'smol-toml'
const __dirname = path.dirname(fileURLToPath(import.meta.url)) const __dirname = path.dirname(fileURLToPath(import.meta.url))
@@ -57,7 +58,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 = 'ea45c80' const setupBeamVersion = '7a27046'
core.setOutput('setup-beam-version', setupBeamVersion) core.setOutput('setup-beam-version', setupBeamVersion)
} }
@@ -279,7 +280,7 @@ async function getElixirVersion(exSpec0) {
if (!foundCombo) { if (!foundCombo) {
throw new Error( throw new Error(
`Requested Elixir / Erlang/OTP version (${exSpec0} / tried ${otpVersionsMajor}) not ` + `Requested Elixir / Erlang/OTP version (${exSpec0} / tried ${otpVersionsMajor}) not ` +
'found in version list (did you check Compatibility between Elixir and Erlang/OTP?). ' + 'found in version list (did you check Compatibility between Elixir and Erlang/OTP?).' +
'Elixir and Erlang/OTP compatibility can be found at: ' + 'Elixir and Erlang/OTP compatibility can be found at: ' +
'https://hexdocs.pm/elixir/compatibility-and-deprecations.html', 'https://hexdocs.pm/elixir/compatibility-and-deprecations.html',
) )
@@ -377,7 +378,9 @@ async function getOTPVersions(osVersion) {
}) })
} else if (process.platform === 'win32') { } else if (process.platform === 'win32') {
const otpArch = otpArchitecture() const otpArch = otpArchitecture()
const file_regex = new RegExp(`^otp_win${RegExp.escape(otpArch)}_(.*).exe$`) const file_regex = new RegExp(
`^otp_win${_.escapeRegExp(otpArch)}_(.*).exe$`,
)
otpVersionsListings.forEach((otpVersionsListing) => { otpVersionsListings.forEach((otpVersionsListing) => {
otpVersionsListing otpVersionsListing
.map((x) => x.assets) .map((x) => x.assets)
@@ -658,21 +661,14 @@ function getRunnerOSArchitecture() {
function getRunnerOSVersion() { function getRunnerOSVersion() {
// List from https://github.com/actions/runner-images?tab=readme-ov-file#available-images // List from https://github.com/actions/runner-images?tab=readme-ov-file#available-images
// at e065a395d52f491c58eb8fba8ab1dde2c7cfada1
// Not considered, at the moment (though it might be easy to adapt to...):
// - ubuntu-slim
// - all macOS intel, large, and xlarge variants
// - all win arm variants
const ImageOSToContainer = { const ImageOSToContainer = {
ubuntu22: 'ubuntu-22.04', ubuntu22: 'ubuntu-22.04',
'ubuntu22-arm64': 'ubuntu-22.04',
ubuntu24: 'ubuntu-24.04', ubuntu24: 'ubuntu-24.04',
'ubuntu24-arm64': 'ubuntu-24.04', 'win11-arm64': 'windows-11-arm',
ubuntu26: 'ubuntu-26.04', win19: 'windows-2019',
'ubuntu26-arm64': 'ubuntu-26.04',
win22: 'windows-2022', win22: 'windows-2022',
win25: 'windows-2025', win25: 'windows-2025',
'win25-vs2026': 'windows-2025', macos13: 'macOS-13',
macos14: 'macOS-14', macos14: 'macOS-14',
macos15: 'macOS-15', macos15: 'macOS-15',
macos26: 'macOS-26', macos26: 'macOS-26',
@@ -680,8 +676,6 @@ function getRunnerOSVersion() {
const deprecatedImageOSToContainer = { const deprecatedImageOSToContainer = {
ubuntu18: 'ubuntu-18.04', ubuntu18: 'ubuntu-18.04',
ubuntu20: 'ubuntu-20.04', ubuntu20: 'ubuntu-20.04',
win19: 'windows-2019',
macos13: 'macOS-13',
} }
const containerFromEnvImageOS = ImageOSToContainer[process.env.ImageOS] const containerFromEnvImageOS = ImageOSToContainer[process.env.ImageOS]
if (!containerFromEnvImageOS) { if (!containerFromEnvImageOS) {
@@ -979,7 +973,7 @@ async function install(toolName, opts) {
const otpArch = otpArchitecture() const otpArch = otpArchitecture()
return ( return (
'https://github.com/erlang/otp/releases/download/' + 'https://github.com/erlang/otp/releases/download/' +
`OTP-${toolVersion}/otp_win${otpArch}_${toolVersion}.exe` `OTP-${toolVersion}/otp_win${_.escapeRegExp(otpArch)}_${toolVersion}.exe`
) )
}, },
extract: async () => ['file', 'otp.exe'], extract: async () => ['file', 'otp.exe'],
+72 -869
View File
File diff suppressed because it is too large Load Diff
+11 -11
View File
@@ -273,7 +273,7 @@ describe('.getOTPVersion(_) - Erlang', () => {
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
spec = '23.0' spec = '23.0'
osVersion = 'windows-2022' osVersion = 'windows-2019'
expected = '23.0.4' expected = '23.0.4'
got = await setupBeam.getOTPVersion(spec, osVersion) got = await setupBeam.getOTPVersion(spec, osVersion)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
@@ -294,7 +294,7 @@ describe('.getOTPVersion(_) - Erlang', () => {
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
spec = '23.0' spec = '23.0'
osVersion = 'windows-2022' osVersion = 'windows-2019'
expected = '23.0.4' expected = '23.0.4'
got = await setupBeam.getOTPVersion(spec, osVersion) got = await setupBeam.getOTPVersion(spec, osVersion)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
@@ -625,9 +625,9 @@ describe('.getOTPVersion(_) - Elixir', () => {
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
before = simulateInput('version-type', 'strict') before = simulateInput('version-type', 'strict')
spec = '1.19' spec = '1.17'
otpVersion = 'master' otpVersion = 'master'
expected = 'v1.19-otp-28' expected = 'v1.17-otp-27'
await setupBeam.installOTP(otpVersion) await setupBeam.installOTP(otpVersion)
got = await setupBeam.getElixirVersion(spec, otpVersion) got = await setupBeam.getElixirVersion(spec, otpVersion)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
@@ -695,18 +695,18 @@ describe('.getOTPVersion(_) - rebar3', () => {
let spec let spec
it('returns the expected value', async () => { it('returns the expected value', async () => {
spec = '3.26.x' spec = '3.10.x'
expected = '3.26.0' expected = '3.10.0'
got = await setupBeam.getRebar3Version(spec) got = await setupBeam.getRebar3Version(spec)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
spec = '3.25' spec = '3.11'
expected = '3.25.1' expected = '3.11.1'
got = await setupBeam.getRebar3Version(spec) got = await setupBeam.getRebar3Version(spec)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
spec = '3.26' spec = '3.10'
expected = '3.26.0' expected = '3.10.0'
got = await setupBeam.getRebar3Version(spec) got = await setupBeam.getRebar3Version(spec)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
}) })
@@ -972,7 +972,7 @@ describe('.getVersionFromSpec(_)', () => {
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
spec = 'latest' spec = 'latest'
expected = '3.27.0' expected = '3.23.0'
got = setupBeam.getVersionFromSpec(spec, matrix.rebar3) got = setupBeam.getVersionFromSpec(spec, matrix.rebar3)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
}) })