mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-22 22:56:07 +00:00
6e9312bce0
* 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
146 lines
4.4 KiB
YAML
146 lines
4.4 KiB
YAML
---
|
|
name: macos
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
branches:
|
|
- '*'
|
|
workflow_dispatch: {}
|
|
|
|
jobs:
|
|
integration_test:
|
|
name: >
|
|
OS ${{matrix.combo.os}},
|
|
OTP ${{matrix.combo.otp-version}},
|
|
Elixir ${{matrix.combo.elixir-version}},
|
|
rebar3 ${{matrix.combo.rebar3-version}}
|
|
runs-on: ${{matrix.combo.os}}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
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'
|
|
elixir-version: 'v1.17.0'
|
|
rebar3-version: '3.23'
|
|
os: 'macos-latest'
|
|
- otp-version: '26.0'
|
|
elixir-version: 'v1.14-otp-25'
|
|
os: 'macos-latest'
|
|
version-type: 'strict'
|
|
- otp-version: '26.0'
|
|
elixir-version: '1.14.5'
|
|
os: 'macos-latest'
|
|
version-type: 'strict'
|
|
- otp-version: '25.2'
|
|
elixir-version: '1.14.2'
|
|
os: 'macos-latest'
|
|
- otp-version: '25.2'
|
|
elixir-version: '1.14.3'
|
|
os: 'macos-latest'
|
|
version-type: 'strict'
|
|
- otp-version: '25.0'
|
|
elixir-version: 'v1.16.3-otp-25'
|
|
rebar3-version: '3.18.0'
|
|
os: 'macos-latest'
|
|
version-type: 'strict'
|
|
- otp-version: '25.0'
|
|
elixir-version: 'v1.16.3'
|
|
rebar3-version: '3.18.0'
|
|
os: 'macos-latest'
|
|
version-type: 'strict'
|
|
escript_packages: 'hex protobuf'
|
|
escript_script: 'protoc-gen-elixir --version'
|
|
- otp-version: 'latest'
|
|
rebar3-version: 'latest'
|
|
os: 'macos-latest'
|
|
steps:
|
|
- uses: actions/checkout@v6.0.2
|
|
- name: Use erlef/setup-beam
|
|
id: setup-beam
|
|
uses: ./
|
|
with:
|
|
otp-version: ${{matrix.combo.otp-version}}
|
|
elixir-version: ${{matrix.combo.elixir-version}}
|
|
rebar3-version: ${{matrix.combo.rebar3-version}}
|
|
version-type: ${{matrix.combo.version-type}}
|
|
- name: Erlang/OTP version (action)
|
|
run: echo "Erlang/OTP ${{steps.setup-beam.outputs.otp-version}}"
|
|
if: ${{matrix.combo.otp-version}}
|
|
- name: Elixir version (action)
|
|
run: echo "Elixir ${{steps.setup-beam.outputs.elixir-version}}"
|
|
if: ${{matrix.combo.elixir-version}}
|
|
- name: rebar3 version (action)
|
|
run: echo "rebar3 ${{steps.setup-beam.outputs.rebar3-version}}"
|
|
if: ${{matrix.combo.rebar3-version}}
|
|
- name: mix version and help (CLI)
|
|
run: |
|
|
mix -v
|
|
mix help local.rebar
|
|
mix help local.hex
|
|
if: ${{matrix.combo.elixir-version}}
|
|
- name: Run Elixir/Mix project tests
|
|
run: |
|
|
cd test/projects/elixir_mix
|
|
mix deps.get
|
|
mix test
|
|
if: ${{matrix.combo.elixir-version}}
|
|
- name: Run Erlang/rebar3 project tests
|
|
run: |
|
|
cd test/projects/erlang_rebar3
|
|
rebar3 ct
|
|
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:
|
|
name: Environment variables
|
|
runs-on: ${{matrix.combo.os}}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
combo:
|
|
- otp-version: 27
|
|
elixir-version: 1.19
|
|
rebar3-version: 3.24
|
|
os: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@v6.0.2
|
|
- name: Use erlef/setup-beam
|
|
id: setup-beam
|
|
uses: ./
|
|
with:
|
|
otp-version: ${{matrix.combo.otp-version}}
|
|
elixir-version: ${{matrix.combo.elixir-version}}
|
|
rebar3-version: ${{matrix.combo.rebar3-version}}
|
|
- run: env
|
|
- name: Check environment variables
|
|
run: |
|
|
"${INSTALL_DIR_FOR_ELIXIR}"/bin/elixir -v
|
|
"${INSTALL_DIR_FOR_OTP}"/bin/erl -version
|
|
"${INSTALL_DIR_FOR_REBAR3}"/bin/rebar3 version
|