Compare commits

...

18 Commits

Author SHA1 Message Date
GitHub Actions 54075bcc5e Automation: update setup-beam version output to ea45c80 2026-06-28 16:35:41 +00:00
Jonatan Männchen ea45c8043f Remove lodash Dependency (#457)
NodeJS 24 contains RegExp.escape, no need for lodash.
2026-06-28 17:35:21 +01:00
GitHub Actions b4b8d851b6 Automation: update setup-beam version output to 20df794 2026-06-28 15:16:26 +00:00
dependabot[bot] 20df794ab3 Bump globals from 17.4.0 to 17.7.0 (#452)
Bumps [globals](https://github.com/sindresorhus/globals) from 17.4.0 to 17.7.0.
- [Release notes](https://github.com/sindresorhus/globals/releases)
- [Commits](https://github.com/sindresorhus/globals/compare/v17.4.0...v17.7.0)

---
updated-dependencies:
- dependency-name: globals
  dependency-version: 17.5.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-28 16:16:07 +01:00
GitHub Actions 9d5c5ca125 Automation: update setup-beam version output to ad42943 2026-06-28 15:14:47 +00:00
dependabot[bot] ad4294342c Bump prettier from 3.8.1 to 3.9.1 (#454)
Bumps [prettier](https://github.com/prettier/prettier) from 3.8.1 to 3.9.1.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/3.8.1...3.9.1)

---
updated-dependencies:
- dependency-name: prettier
  dependency-version: 3.8.3
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-28 16:14:29 +01:00
GitHub Actions 135c095dff Automation: update setup-beam version output to a04cfbb 2026-06-28 15:13:05 +00:00
dependabot[bot] a04cfbb50e Bump eslint from 10.1.0 to 10.6.0 (#453)
Bumps [eslint](https://github.com/eslint/eslint) from 10.1.0 to 10.6.0.
- [Release notes](https://github.com/eslint/eslint/releases)
- [Commits](https://github.com/eslint/eslint/compare/v10.1.0...v10.6.0)

---
updated-dependencies:
- dependency-name: eslint
  dependency-version: 10.2.1
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-28 16:12:05 +01:00
GitHub Actions cd1472f941 Automation: update setup-beam version output to c80fdc9 2026-06-28 15:09:08 +00:00
dependabot[bot] c80fdc938c Bump actions/checkout from 6.0.2 to 7.0.0 (#467)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.2 to 7.0.0.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6.0.2...v7.0.0)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 7.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-28 16:08:48 +01:00
GitHub Actions aecd7abd75 Automation: update setup-beam version output to 6e9312b 2026-06-28 14:53:40 +00:00
Paulo F. Oliveira 6e9312bce0 fix: broken tests (mostly out of stuff being outdated) (#468)
* Update rebar3's releases.json per current results

* Up rebar3 test versions

* Retire windows-2019

* Add "support" to win25-vs2026 next to win25

windows-2025-vs2026 label was previously a beta testing
tag but is now the production default

* Fix rebar3 test releases.json

* Bump per CI results

* Fix per CI results (I checked in releases.json)

* Adapt to Ubuntu 26.04 (no -arm)

* Consider Ubuntu ARM variants in execution

* Typo

* Bump it to the minimum expect value

* Bump it to the minimum expect value

* Tweak ARM tests: drop windows-11

* Fix per prior test results

* Try testing OTP to update README

* Improve guarantees on the README (via tests)

* Improve guarantees on the README (via tests)

Trust tests in intervals (if first Ok and last Ok the middle Ok)

* Add further constraints for testing (per README)

* Remove moving-target test

This is prone to fail for an issue with OTP's main
branch but it shouldn't affect the action, so we
remove it

* Respect Hex's boundaries

* Make it consistent (no need for .0 in versioning)

* Restrict it a bit

We keep the README as-is, since there's nothing preventing us
from thinking it works as stated, but we move our tests forward

* Make it easier to follow

* Fix it per stalled CI

* Fix it: no macos-16; it's macos-26

* Deprecate macos-13

Per https://github.blog/changelog/2025-07-11-upcoming-changes-to-macos-hosted-runners-macos-latest-migration-and-xcode-support-policy-updates/#macos-13-is-closing-down

* Make ImageOS support more explicit

* Move forward
2026-06-28 15:53:20 +01:00
GitHub Actions 3985c7c047 Automation: update setup-beam version output to 35f5255 2026-06-28 12:40:09 +00:00
github-actions[bot] 35f52551d2 Update 3rd party licenses (automation) (#469)
Update 3rd party licenses

Co-authored-by: GitHub Actions <actions@user.noreply.github.com>
2026-06-28 13:39:52 +01:00
GitHub Actions 0510550330 Automation: update setup-beam version output to 9eabb2c 2026-06-28 11:42:59 +00:00
github-actions[bot] 9eabb2c115 Update 3rd party licenses (automation) (#459)
Update 3rd party licenses

Co-authored-by: GitHub Actions <actions@user.noreply.github.com>
2026-06-28 12:42:40 +01:00
GitHub Actions e5f1a7b722 Automation: update setup-beam version output to 7a27046 2026-04-29 01:33:13 +00:00
github-actions[bot] 7a27046239 Update 3rd party licenses (automation) (#446)
Update 3rd party licenses

Co-authored-by: GitHub Actions <actions@user.noreply.github.com>
2026-04-29 02:32:56 +01:00
14 changed files with 1046 additions and 17509 deletions
+6 -7
View File
@@ -24,7 +24,7 @@ jobs:
permissions: permissions:
contents: write contents: write
steps: steps:
- uses: actions/checkout@v6.0.2 - uses: actions/checkout@v7.0.0
- 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@v6.0.2 - uses: actions/checkout@v7.0.0
- 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@v6.0.2 - uses: actions/checkout@v7.0.0
- 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@v6.0.2 - uses: actions/checkout@v7.0.0
- uses: actions/setup-node@v6.3.0 - uses: actions/setup-node@v6.3.0
with: with:
node-version: '24' node-version: '24'
@@ -92,11 +92,10 @@ 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@v6.0.2 - uses: actions/checkout@v7.0.0
- uses: actions/setup-node@v6.3.0 - uses: actions/setup-node@v6.3.0
with: with:
node-version: '24' node-version: '24'
@@ -122,7 +121,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@v6.0.2 - uses: actions/checkout@v7.0.0
- 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@v6.0.2 - uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
+21 -13
View File
@@ -16,6 +16,7 @@ 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}}
@@ -24,6 +25,22 @@ 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'
@@ -43,22 +60,13 @@ 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.13.4-otp-25' elixir-version: 'v1.16.3-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.13.4' elixir-version: 'v1.16.3'
rebar3-version: '3.18.0' rebar3-version: '3.18.0'
os: 'macos-latest' os: 'macos-latest'
version-type: 'strict' version-type: 'strict'
@@ -68,7 +76,7 @@ jobs:
rebar3-version: 'latest' rebar3-version: 'latest'
os: 'macos-latest' os: 'macos-latest'
steps: steps:
- uses: actions/checkout@v6.0.2 - uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
@@ -121,7 +129,7 @@ jobs:
rebar3-version: 3.24 rebar3-version: 3.24
os: macos-latest os: macos-latest
steps: steps:
- uses: actions/checkout@v6.0.2 - uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
+19 -17
View File
@@ -16,6 +16,7 @@ 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}},
@@ -25,15 +26,22 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
combo: combo:
- otp-version: '<26' # Ubuntu 22.04 - per README
elixir-version: '<1.17' - otp-version: '24.2'
os: 'ubuntu-22.04' os: 'ubuntu-22.04'
- otp-version: 'master' - otp-version: '29'
elixir-version: '> 0' os: 'ubuntu-22.04'
# Ubuntu 24.04 - per README
- otp-version: '24.3'
os: 'ubuntu-24.04' os: 'ubuntu-24.04'
- otp-version: 'master' - otp-version: '29'
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'
@@ -53,19 +61,13 @@ 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.13.4-otp-25' elixir-version: 'v1.16.2-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.13.4' elixir-version: 'v1.16.3'
rebar3-version: '3.18.0' rebar3-version: '3.18.0'
os: 'ubuntu-latest' os: 'ubuntu-latest'
version-type: 'strict' version-type: 'strict'
@@ -80,13 +82,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.13' - elixir-version: 'v1.16'
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@v6.0.2 - uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
@@ -154,7 +156,7 @@ jobs:
rebar3-version: 3.24 rebar3-version: 3.24
os: ubuntu-latest os: ubuntu-latest
steps: steps:
- uses: actions/checkout@v6.0.2 - uses: actions/checkout@v7.0.0
- 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@v6.0.2 - uses: actions/checkout@v7.0.0
- run: - run:
./.github/workflows/update_3rd_party_licenses.sh ./.github/workflows/update_3rd_party_licenses.sh
env: env:
+17 -14
View File
@@ -16,6 +16,7 @@ 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}},
@@ -25,12 +26,20 @@ 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: 'ubuntu-22.04' os: 'windows-latest'
- 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'
@@ -47,30 +56,24 @@ 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.13' - elixir-version: 'v1.16'
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.13' - elixir-version: 'v1.16'
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@v6.0.2 - uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
@@ -137,7 +140,7 @@ jobs:
rebar3-version: 3.24 rebar3-version: 3.24
os: windows-latest os: windows-latest
steps: steps:
- uses: actions/checkout@v6.0.2 - uses: actions/checkout@v7.0.0
- name: Use erlef/setup-beam - name: Use erlef/setup-beam
id: setup-beam id: setup-beam
uses: ./ uses: ./
+1 -28
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) 2023 Arjun Barrett Copyright (c) 2026 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
@@ -4020,33 +4020,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
----- -----
The following software may be included in this product: toml. A copy of the source code may be downloaded from git://github.com/BinaryMuse/toml-node.git. This software contains the following license and notice below:
Copyright (c) 2012 Michelle Tilley
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the "Software"), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following
conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
-----
The following software may be included in this product: tslib. A copy of the source code may be downloaded from https://github.com/Microsoft/tslib.git. This software contains the following license and notice below: The following software may be included in this product: tslib. A copy of the source code may be downloaded from https://github.com/Microsoft/tslib.git. This software contains the following license and notice below:
Copyright (c) Microsoft Corporation. Copyright (c) Microsoft Corporation.
+15 -13
View File
@@ -78,17 +78,16 @@ 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 - 28 | x86_64, arm64 | ✅ | `ubuntu-22.04` | 24.2 - 29 | x86_64, arm64 | ✅
| `ubuntu-24.04` | 24.3 - 28 | x86_64, arm64 | ✅ | `ubuntu-24.04` | 24.3 - 29 | x86_64, arm64 | ✅
| `windows-2019` | 21\* - 25 | x86_64, x86 | ✅ | `ubuntu-26.04` | 26 - 29 | x86_64, arm64 | ✅
| `windows-2022` | 21\* - 28 | x86_64, x86 | ✅ | `windows-2022` | 21\* - 29 | x86_64, x86 | ✅
| `windows-2025` | 21\* - 28 | x86_64, x86 | ✅ | `windows-2025` | 21\* - 29 | x86_64, x86 | ✅
| `macOS-13` | 25.0 - 28 | x86_64, arm64 | ✅ | `macOS-14` | 25 - 29 | x86_64, arm64 | ✅
| `macOS-14` | 25.0 - 28 | x86_64, arm64 | ✅ | `macOS-15` | 25 - 29 | x86_64, arm64 | ✅
| `macOS-15` | 25.0 - 28 | x86_64, arm64 | ✅ | `macOS-26` | 25 - 29 | 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.
@@ -106,11 +105,14 @@ 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`
| `win19` | `windows-2019` | `ubuntu24-arm64` | `ubuntu-24.04`
| `ubuntu26` | `ubuntu-26.04`
| `ubuntu26-arm64` | `ubuntu-26.04`
| `win22` | `windows-2022` | `win22` | `windows-2022`
| `win25` | `windows-2025` | `win25` | `windows-2025`
| `macos13` | `macOS-13` | `win25-vs2026` | `windows-2025`
| `macos14` | `macOS-14` | `macos14` | `macOS-14`
| `macos15` | `macOS-15` | `macos15` | `macOS-15`
| `macos26` | `macOS-26` | `macos26` | `macOS-26`
+19 -17282
View File
File diff suppressed because it is too large Load Diff
+47 -37
View File
@@ -11,18 +11,17 @@
"@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.1.0", "eslint": "10.6.0",
"eslint-plugin-yml": "3.3.1", "eslint-plugin-yml": "3.3.1",
"globals": "17.4.0", "globals": "17.7.0",
"markdownlint-cli": "0.48.0", "markdownlint-cli": "0.48.0",
"prettier": "3.8.1", "prettier": "3.9.1",
"shellcheck": "4.1.0", "shellcheck": "4.1.0",
"yarn": "1.22.22" "yarn": "1.22.22"
}, },
@@ -132,13 +131,13 @@
} }
}, },
"node_modules/@eslint/config-array": { "node_modules/@eslint/config-array": {
"version": "0.23.3", "version": "0.23.5",
"resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.3.tgz", "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.5.tgz",
"integrity": "sha512-j+eEWmB6YYLwcNOdlwQ6L2OsptI/LO6lNBuLIqe5R7RetD658HLoF+Mn7LzYmAWWNNzdC6cqP+L6r8ujeYXWLw==", "integrity": "sha512-Y3kKLvC1dvTOT+oGlqNQ1XLqK6D1HU2YXPc52NmAlJZbMMWDzGYXMiPRJ8TYD39muD/OTjlZmNJ4ib7dvSrMBA==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@eslint/object-schema": "^3.0.3", "@eslint/object-schema": "^3.0.5",
"debug": "^4.3.1", "debug": "^4.3.1",
"minimatch": "^10.2.4" "minimatch": "^10.2.4"
}, },
@@ -147,22 +146,22 @@
} }
}, },
"node_modules/@eslint/config-helpers": { "node_modules/@eslint/config-helpers": {
"version": "0.5.3", "version": "0.6.0",
"resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.5.3.tgz", "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.6.0.tgz",
"integrity": "sha512-lzGN0onllOZCGroKJmRwY6QcEHxbjBw1gwB8SgRSqK8YbbtEXMvKynsXc3553ckIEBxsbMBU7oOZXKIPGZNeZw==", "integrity": "sha512-ii6Bw9jJ2zi2cWA2Z+9/QZ/+3DX6kwaV5Q986D/CdP3Lap3w/pgQZ373FV7byY/i7L4IRH/G43I5dz1ClsCbpA==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
"@eslint/core": "^1.1.1" "@eslint/core": "^1.2.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.1.1", "version": "1.2.1",
"resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.1.1.tgz", "resolved": "https://registry.npmjs.org/@eslint/core/-/core-1.2.1.tgz",
"integrity": "sha512-QUPblTtE51/7/Zhfv8BDwO0qkkzQL7P/aWWbqcf4xWLEYn1oKjdO0gglQBB4GAsu7u6wjijbCmzsUTy6mnk6oQ==", "integrity": "sha512-MwcE1P+AZ4C6DWlpin/OmOA54mmIZ/+xZuJiQd4SyB29oAJjN30UW9wkKNptW2ctp4cEsvhlLY/CsQ1uoHDloQ==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"dependencies": { "dependencies": {
@@ -194,9 +193,9 @@
} }
}, },
"node_modules/@eslint/object-schema": { "node_modules/@eslint/object-schema": {
"version": "3.0.3", "version": "3.0.5",
"resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.3.tgz", "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.5.tgz",
"integrity": "sha512-iM869Pugn9Nsxbh/YHRqYiqd23AmIbxJOcpUMOuWCVNdoQJ5ZtwL6h3t0bcZzJUlC3Dq9jCFCESBZnX0GTv7iQ==", "integrity": "sha512-vqTaUEgxzm+YDSdElad6PiRoX4t8VGDjCtt05zn4nU810UIx/uNEV7/lZJ6KwFThKZOzOxzXy48da+No7HZaMw==",
"dev": true, "dev": true,
"license": "Apache-2.0", "license": "Apache-2.0",
"engines": { "engines": {
@@ -1272,18 +1271,21 @@
} }
}, },
"node_modules/eslint": { "node_modules/eslint": {
"version": "10.1.0", "version": "10.6.0",
"resolved": "https://registry.npmjs.org/eslint/-/eslint-10.1.0.tgz", "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.6.0.tgz",
"integrity": "sha512-S9jlY/ELKEUwwQnqWDO+f+m6sercqOPSqXM5Go94l7DOmxHVDgmSFGWEzeE/gwgTAr0W103BWt0QLe/7mabIvA==", "integrity": "sha512-6lVbcqSodALYo+4ELD0heG6lFiFxnLMuLkiMi2qV8LMp54N8tE8FT1GMH+ev4Ti00nFjNze2+Su6DsV5OQW3Dg==",
"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.3", "@eslint/config-array": "^0.23.5",
"@eslint/config-helpers": "^0.5.3", "@eslint/config-helpers": "^0.6.0",
"@eslint/core": "^1.1.1", "@eslint/core": "^1.2.1",
"@eslint/plugin-kit": "^0.6.1", "@eslint/plugin-kit": "^0.7.2",
"@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",
@@ -1398,6 +1400,20 @@
"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",
@@ -1735,9 +1751,9 @@
} }
}, },
"node_modules/globals": { "node_modules/globals": {
"version": "17.4.0", "version": "17.7.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-17.4.0.tgz", "resolved": "https://registry.npmjs.org/globals/-/globals-17.7.0.tgz",
"integrity": "sha512-hjrNztw/VajQwOLsMNT1cbJiH2muO3OROCHnbehc8eY5JyD2gqz4AcMHPqgaOR59DjgUjYAYLeH699g/eWi2jw==", "integrity": "sha512-Czmyns5dUsq4seFBR/Kdydhmo8y9kC79hiSkPn0YcGtNnYWnrgt0vjrSjx9tspoDGWm2CMarffRuLjM4xUz8xg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"engines": { "engines": {
@@ -2166,12 +2182,6 @@
"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",
@@ -3074,9 +3084,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "3.8.1", "version": "3.9.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.8.1.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.9.1.tgz",
"integrity": "sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==", "integrity": "sha512-ppiDo2CSwexck1eyZUwJHg/N3nf1+6IRCv7W/VJ5vaLnVCmB7+3CdRfMwoCHBBX6xTrREDTksZ4OZl5SSf4zXA==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"bin": { "bin": {
+3 -4
View File
@@ -21,18 +21,17 @@
"@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.1.0", "eslint": "10.6.0",
"eslint-plugin-yml": "3.3.1", "eslint-plugin-yml": "3.3.1",
"globals": "17.4.0", "globals": "17.7.0",
"markdownlint-cli": "0.48.0", "markdownlint-cli": "0.48.0",
"prettier": "3.8.1", "prettier": "3.9.1",
"shellcheck": "4.1.0", "shellcheck": "4.1.0",
"yarn": "1.22.22" "yarn": "1.22.22"
}, },
+16 -9
View File
@@ -7,7 +7,6 @@ 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))
@@ -58,7 +57,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 = '190c3a5' const setupBeamVersion = 'ea45c80'
core.setOutput('setup-beam-version', setupBeamVersion) core.setOutput('setup-beam-version', setupBeamVersion)
} }
@@ -280,7 +279,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',
) )
@@ -378,9 +377,7 @@ 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( const file_regex = new RegExp(`^otp_win${RegExp.escape(otpArch)}_(.*).exe$`)
`^otp_win${_.escapeRegExp(otpArch)}_(.*).exe$`,
)
otpVersionsListings.forEach((otpVersionsListing) => { otpVersionsListings.forEach((otpVersionsListing) => {
otpVersionsListing otpVersionsListing
.map((x) => x.assets) .map((x) => x.assets)
@@ -661,13 +658,21 @@ 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',
win19: 'windows-2019', 'ubuntu24-arm64': 'ubuntu-24.04',
ubuntu26: 'ubuntu-26.04',
'ubuntu26-arm64': 'ubuntu-26.04',
win22: 'windows-2022', win22: 'windows-2022',
win25: 'windows-2025', win25: 'windows-2025',
macos13: 'macOS-13', 'win25-vs2026': 'windows-2025',
macos14: 'macOS-14', macos14: 'macOS-14',
macos15: 'macOS-15', macos15: 'macOS-15',
macos26: 'macOS-26', macos26: 'macOS-26',
@@ -675,6 +680,8 @@ 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) {
@@ -972,7 +979,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${_.escapeRegExp(otpArch)}_${toolVersion}.exe` `OTP-${toolVersion}/otp_win${otpArch}_${toolVersion}.exe`
) )
}, },
extract: async () => ['file', 'otp.exe'], extract: async () => ['file', 'otp.exe'],
+869 -72
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-2019' osVersion = 'windows-2022'
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-2019' osVersion = 'windows-2022'
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.17' spec = '1.19'
otpVersion = 'master' otpVersion = 'master'
expected = 'v1.17-otp-27' expected = 'v1.19-otp-28'
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.10.x' spec = '3.26.x'
expected = '3.10.0' expected = '3.26.0'
got = await setupBeam.getRebar3Version(spec) got = await setupBeam.getRebar3Version(spec)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
spec = '3.11' spec = '3.25'
expected = '3.11.1' expected = '3.25.1'
got = await setupBeam.getRebar3Version(spec) got = await setupBeam.getRebar3Version(spec)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
spec = '3.10' spec = '3.26'
expected = '3.10.0' expected = '3.26.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.23.0' expected = '3.27.0'
got = setupBeam.getVersionFromSpec(spec, matrix.rebar3) got = setupBeam.getVersionFromSpec(spec, matrix.rebar3)
assert.deepStrictEqual(got, expected) assert.deepStrictEqual(got, expected)
}) })