@@ -34,7 +34,8 @@ concurrency:
34
34
35
35
jobs :
36
36
build-and-test :
37
- runs-on : ${{ matrix.os }}
37
+ runs-on : ${{ matrix.os || 'ubuntu-24.04' }}
38
+ container : ${{ matrix.container }}
38
39
strategy :
39
40
40
41
fail-fast : false
@@ -56,17 +57,17 @@ jobs:
56
57
- cc : " gcc-7"
57
58
cxx : " g++-7"
58
59
compiler_pkgs : " gcc-7 g++-7"
59
- os : " ubuntu- 20.04"
60
+ container : " ubuntu: 20.04"
60
61
otp : " 27"
61
62
- cc : " gcc-8"
62
63
cxx : " g++-8"
63
64
compiler_pkgs : " gcc-8 g++-8"
64
- os : " ubuntu- 20.04"
65
+ container : " ubuntu: 20.04"
65
66
otp : " 27"
66
67
- cc : " gcc-9"
67
68
cxx : " g++-9"
68
69
compiler_pkgs : " gcc-9 g++-9"
69
- os : " ubuntu- 20.04"
70
+ container : " ubuntu: 20.04"
70
71
# otp: all
71
72
- cc : " gcc-10"
72
73
cxx : " g++-10"
@@ -108,13 +109,13 @@ jobs:
108
109
cxx : " clang++-10"
109
110
compiler_pkgs : " clang-10"
110
111
cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
111
- os : " ubuntu- 20.04"
112
+ container : " ubuntu: 20.04"
112
113
# otp: all
113
114
- cc : " clang-11"
114
115
cxx : " clang++-11"
115
116
compiler_pkgs : " clang-11"
116
117
cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
117
- os : " ubuntu- 20.04"
118
+ container : " ubuntu: 20.04"
118
119
otp : " 27"
119
120
- cc : " clang-12"
120
121
cxx : " clang++-12"
@@ -169,33 +170,37 @@ jobs:
169
170
elixir_version : " 1.17"
170
171
171
172
# Old versions of OTP/Elixir
172
- - os : " ubuntu- 20.04"
173
+ - container : " ubuntu: 20.04"
173
174
cc : " cc"
174
175
cxx : " c++"
175
176
otp : " 21"
176
177
cflags : " "
177
178
elixir_version : " 1.7"
179
+ compiler_pkgs : " g++"
178
180
179
- - os : " ubuntu- 20.04"
181
+ - container : " ubuntu: 20.04"
180
182
cc : " cc"
181
183
cxx : " c++"
182
184
otp : " 22"
183
185
cflags : " "
184
186
elixir_version : " 1.8"
187
+ compiler_pkgs : " g++"
185
188
186
- - os : " ubuntu- 20.04"
189
+ - container : " ubuntu: 20.04"
187
190
cc : " cc"
188
191
cxx : " c++"
189
192
otp : " 23"
190
193
cflags : " "
191
194
elixir_version : " 1.11"
195
+ compiler_pkgs : " g++"
192
196
193
- - os : " ubuntu-22 .04"
197
+ - container : " ubuntu:20 .04"
194
198
cc : " cc"
195
199
cxx : " c++"
196
200
otp : " 24"
197
201
cflags : " "
198
202
elixir_version : " 1.14"
203
+ compiler_pkgs : " g++"
199
204
200
205
# TODO: enable master again
201
206
# master will not work until we don't adapt to atom table changes
@@ -207,12 +212,13 @@ jobs:
207
212
# elixir_version: "main"
208
213
209
214
# Additional default compiler builds
210
- - os : " ubuntu- 20.04"
215
+ - container : " ubuntu: 20.04"
211
216
cc : " cc"
212
217
cxx : " c++"
213
218
otp : " 27"
214
219
cflags : " "
215
220
elixir_version : " 1.17"
221
+ compiler_pkgs : " g++"
216
222
217
223
- os : " ubuntu-22.04"
218
224
cc : " cc"
@@ -239,7 +245,7 @@ jobs:
239
245
compiler_pkgs : " clang-18"
240
246
241
247
# Additional 32 bits build
242
- - os : " ubuntu- 20.04"
248
+ - container : " ubuntu: 20.04"
243
249
cc : " gcc-10"
244
250
cxx : " g++-10"
245
251
cflags : " -m32 -O3"
@@ -252,13 +258,30 @@ jobs:
252
258
libc6-dbg:i386 zlib1g-dev:i386 libmbedtls-dev:i386"
253
259
254
260
env :
261
+ ImageOS : ${{ matrix.container == 'ubuntu:20.04' && 'ubuntu20' || matrix.os == 'ubuntu-20.04' && 'ubuntu20' || matrix.os == 'ubuntu-22.04' && 'ubuntu22' || matrix.os == 'ubuntu-24.04' && 'ubuntu24' || 'ubuntu24' }}
255
262
CC : ${{ matrix.cc }}
256
263
CXX : ${{ matrix.cxx }}
257
264
CFLAGS : ${{ matrix.cflags }}
258
265
CXXFLAGS : ${{ matrix.cflags }}
266
+ DEBIAN_FRONTEND : noninteractive
267
+ TZ : " Etc/UTC"
259
268
260
269
steps :
261
270
# Setup
271
+ - name : " Install deps for containers"
272
+ if : matrix.container != ''
273
+ run : apt-get update && apt-get install -y --no-install-recommends sudo unzip git tzdata
274
+
275
+ - name : " Add i386 architecture"
276
+ if : matrix.arch == 'i386'
277
+ run : sudo dpkg --add-architecture i386
278
+
279
+ - name : " APT update"
280
+ run : sudo apt update -y
281
+
282
+ - name : " Install deps"
283
+ run : sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev
284
+
262
285
- name : " Checkout repo"
263
286
uses : actions/checkout@v4
264
287
with :
@@ -273,16 +296,6 @@ jobs:
273
296
https://repo.hex.pm
274
297
https://cdn.jsdelivr.net/hex
275
298
276
- - name : " Add i386 architecture"
277
- if : matrix.arch == 'i386'
278
- run : sudo dpkg --add-architecture i386
279
-
280
- - name : " APT update"
281
- run : sudo apt update -y
282
-
283
- - name : " Install deps"
284
- run : sudo apt install -y ${{ matrix.compiler_pkgs}} cmake gperf zlib1g-dev doxygen valgrind libmbedtls-dev
285
-
286
299
# Builder info
287
300
- name : " System info"
288
301
run : |
@@ -393,10 +406,12 @@ jobs:
393
406
working-directory : build
394
407
run : |
395
408
ulimit -c unlimited
396
- if command -v elixirc &> /dev/null
409
+ if command -v elixirc >/dev/null 2>&1 && command -v elixir > /dev/null 2>&1
397
410
then
398
411
valgrind --error-exitcode=1 ./src/AtomVM ./tests/libs/exavmlib/Tests.avm
399
412
./src/AtomVM ./tests/libs/exavmlib/Tests.avm
413
+ else
414
+ echo "Elixir not installed, skipping Elixir tests"
400
415
fi
401
416
402
417
- name : " Install and smoke test"
0 commit comments