@@ -10,15 +10,17 @@ on: [push, pull_request]
1010
1111jobs :
1212 build-and-test :
13- runs-on : " ubuntu-24.04 "
13+ runs-on : ${{ matrix.os }}
1414 strategy :
15+ fail-fast : false
1516 matrix :
1617 otp : ["25", "26", "27", "28"]
18+ os : ["ubuntu-24.04", "ubuntu-24.04-arm", "macos-26", "macos-15-intel"]
1719
1820 include :
1921 - otp : " 25"
2022 make_jobs : " compile etest"
21- rebar3_version : " 3.24.0 "
23+ rebar3_version : " 3.24.0"
2224 - otp : " 26"
2325 make_jobs : " all"
2426 rebar3_version : " 3.25.1"
@@ -31,20 +33,44 @@ jobs:
3133
3234 steps :
3335 # Builder info
34- - name : " System info"
36+ - name : " Install deps"
37+ if : startsWith(matrix.os, 'macos-') && matrix.otp != '25'
38+ run : brew update && HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install gperf ninja llvm erlang@${{ matrix.otp }} rebar3
39+
40+ - name : " Install deps"
41+ if : startsWith(matrix.os, 'macos-') && matrix.otp == '25'
3542 run : |
36- echo "**uname:**"
37- uname -a
38- echo "**OTP version:**"
39- cat $(dirname $(which erlc))/../releases/RELEASES || true
43+ brew update
44+ HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 brew install gperf ninja llvm erlang@${{ matrix.otp }}
45+ wget https://github.com/erlang/rebar3/releases/download/${{ matrix.rebar3_version }}/rebar3
46+ chmod +x rebar3
47+ for bin_dir in {/usr/local,/opt/homebrew}/opt/erlang@25/bin/ ; do
48+ if [ -e ${bin_dir} ]; then
49+ sudo cp rebar3 ${bin_dir}
50+ fi
51+ done
52+ echo PATH="/usr/local/opt/erlang@${{ matrix.otp }}/bin:/opt/homebrew/opt/erlang@${{ matrix.otp }}/bin:$PATH" >> $GITHUB_ENV
53+
54+ - name : " Install deps"
55+ if : startsWith(matrix.os, 'ubuntu-')
56+ run : |
57+ sudo apt install -y make git gcc-14 g++-14 cmake gperf zlib1g-dev libmbedtls-dev ninja-build
4058
4159 # Setup OTP
4260 - name : " Setup OTP"
61+ if : startsWith(matrix.os, 'ubuntu-')
4362 uses : erlef/setup-beam@v1
4463 with :
4564 otp-version : ${{ matrix.otp }}
4665 rebar3-version : ${{ matrix.rebar3_version }}
4766
67+ - name : " System info"
68+ run : |
69+ echo "**uname:**"
70+ uname -a
71+ echo "**OTP version:**"
72+ cat $(dirname $(which erlc))/../releases/RELEASES || true
73+
4874 # Checkout AtomVM
4975 - name : " Checkout AtomVM"
5076 uses : actions/checkout@v5
@@ -53,18 +79,14 @@ jobs:
5379 path : ' atomvm'
5480 submodules : ' recursive'
5581
56- - name : " Install deps"
57- run : |
58- sudo apt install -y make git gcc-14 g++-14 cmake gperf zlib1g-dev libmbedtls-dev ninja-build
59-
6082 - name : " Install AtomVM"
6183 working-directory : ' atomvm'
6284 run : |
6385 mkdir build
6486 cd build
6587 cmake -DAVM_BUILD_RUNTIME_ONLY=ON -G Ninja ..
66- ninja
67- sudo ninja install
88+ cmake --build .
89+ sudo cmake --build . -t install
6890 atomvm -v
6991
7092 # Setup
0 commit comments