@@ -40,141 +40,201 @@ jobs:
40
40
fail-fast : false
41
41
42
42
matrix :
43
- os : ["ubuntu-20.04", "ubuntu-22.04"]
44
- cc : ["gcc-7", "gcc-8", "gcc-9", "gcc-10", "gcc-11", "gcc-12", "clang-10", "clang-11"]
45
- # cc: ["gcc-7", "gcc-8", "gcc-9", "gcc-10", "gcc-11", "gcc-12", "clang-10", "clang-11", "clang-12", "clang-13", "clang-14"]
46
- cflags : ["-O3"]
47
- otp : ["21", "22", "23", "24", "25", "master"]
48
-
49
- exclude :
50
- # Ubuntu 22.04 with setup-beam only has OTP >= 24.2
51
- - os : " ubuntu-22.04"
52
- otp : " 21"
53
- - os : " ubuntu-22.04"
54
- otp : " 22"
55
- - os : " ubuntu-22.04"
56
- otp : " 23"
57
-
58
43
# Ubuntu 20.04 has gcc from 7 to 10 ("gcc" is gcc-9)
59
44
# Ubuntu 22.04 has gcc from 9 to 12 ("gcc" is gcc-11)
45
+ # Ubuntu 24.04 has gcc from 9 to 14 ("gcc" is gcc-13)
60
46
# Ubuntu 20.04 has clang 10 and 12 to ("clang" is 10)
61
- # Ubuntu 22.04 has clang from 12 to 14 ("clang" is 14)
47
+ # Ubuntu 22.04 has clang from 12 to 15 ("clang" is 14)
48
+ # Ubuntu 24.04 has clang from 14 to 18 ("clang" is 18)
62
49
# We want to test every compiler but don't need to test every OS
63
- # and we favor later Ubuntu 22.04 + defaults
64
- - os : " ubuntu-22.04"
65
- cc : " gcc-7"
66
- - os : " ubuntu-22.04"
67
- cc : " gcc-8"
68
- - os : " ubuntu-20.04"
69
- cc : " gcc-10"
70
- - os : " ubuntu-20.04"
71
- cc : " gcc-11"
72
- - os : " ubuntu-20.04"
73
- cc : " gcc-12"
74
- - os : " ubuntu-22.04"
75
- cc : " clang-10"
76
- - os : " ubuntu-22.04"
77
- cc : " clang-11"
78
- # - os: "ubuntu-20.04"
79
- # cc: "clang-12"
80
- # - os: "ubuntu-20.04"
81
- # cc: "clang-13"
82
- # - os: "ubuntu-20.04"
83
- # cc: "clang-14"
50
+ # We only test several OTP versions with default compilers (gcc-9, 11, 13, clang-10, 14, 18)
51
+ cc : ["gcc-9", "gcc-11", "gcc-13", "clang-10", "clang-14", "clang-18"]
52
+ cflags : ["-O3"]
53
+ otp : ["25", "26", "27"]
84
54
85
55
include :
86
56
- cc : " gcc-7"
87
57
cxx : " g++-7"
88
58
compiler_pkgs : " gcc-7 g++-7"
59
+ os : " ubuntu-20.04"
60
+ otp : " 27"
89
61
- cc : " gcc-8"
90
62
cxx : " g++-8"
91
63
compiler_pkgs : " gcc-8 g++-8"
64
+ os : " ubuntu-20.04"
65
+ otp : " 27"
92
66
- cc : " gcc-9"
93
67
cxx : " g++-9"
94
68
compiler_pkgs : " gcc-9 g++-9"
69
+ os : " ubuntu-20.04"
70
+ # otp: all
95
71
- cc : " gcc-10"
96
72
cxx : " g++-10"
97
73
compiler_pkgs : " gcc-10 g++-10"
98
74
# Use Werror for recent GCC versions that have better diagnostics
99
75
cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
76
+ os : " ubuntu-22.04"
77
+ otp : " 27"
100
78
- cc : " gcc-11"
101
79
cxx : " g++-11"
102
80
compiler_pkgs : " gcc-11 g++-11"
103
81
# Use Werror for recent GCC versions that have better diagnostics
104
82
cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
83
+ os : " ubuntu-22.04"
84
+ # otp: all
105
85
- cc : " gcc-12"
106
86
cxx : " g++-12"
107
87
compiler_pkgs : " gcc-12 g++-12"
108
88
# Use Werror for recent GCC versions that have better diagnostics
109
89
cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
90
+ os : " ubuntu-24.04"
91
+ otp : " 27"
92
+ - cc : " gcc-13"
93
+ cxx : " g++-13"
94
+ compiler_pkgs : " gcc-13 g++-13"
95
+ # Use Werror for recent GCC versions that have better diagnostics
96
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
97
+ os : " ubuntu-24.04"
98
+ # otp: all
99
+ - cc : " gcc-14"
100
+ cxx : " g++-14"
101
+ compiler_pkgs : " gcc-14 g++-14"
102
+ # Use Werror for recent GCC versions that have better diagnostics
103
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
104
+ os : " ubuntu-24.04"
105
+ otp : " 27"
106
+
110
107
- cc : " clang-10"
111
108
cxx : " clang++-10"
112
109
compiler_pkgs : " clang-10"
113
110
cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
111
+ os : " ubuntu-20.04"
112
+ # otp: all
114
113
- cc : " clang-11"
115
114
cxx : " clang++-11"
116
115
compiler_pkgs : " clang-11"
117
116
cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
118
- # - cc: "clang-12"
119
- # cxx: "clang++-12"
120
- # compiler_pkgs: "clang-12"
121
- # - cc: "clang-13"
122
- # cxx: "clang++-13"
123
- # compiler_pkgs: "clang-13"
124
- # - cc: "clang-14"
125
- # cxx: "clang++-14"
126
- # compiler_pkgs: "clang-14"
127
-
128
-
129
- - otp : " 21"
117
+ os : " ubuntu-20.04"
118
+ otp : " 27"
119
+ - cc : " clang-12"
120
+ cxx : " clang++-12"
121
+ compiler_pkgs : " clang-12"
122
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
123
+ os : " ubuntu-22.04"
124
+ otp : " 27"
125
+ - cc : " clang-13"
126
+ cxx : " clang++-13"
127
+ compiler_pkgs : " clang-13"
128
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
129
+ os : " ubuntu-22.04"
130
+ otp : " 27"
131
+ - cc : " clang-14"
132
+ cxx : " clang++-14"
133
+ compiler_pkgs : " clang-14"
134
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
135
+ os : " ubuntu-22.04"
136
+ # otp: all
137
+ - cc : " clang-15"
138
+ cxx : " clang++-15"
139
+ compiler_pkgs : " clang-15"
140
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
141
+ os : " ubuntu-24.04"
142
+ otp : " 27"
143
+ - cc : " clang-16"
144
+ cxx : " clang++-16"
145
+ compiler_pkgs : " clang-16"
146
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
147
+ os : " ubuntu-24.04"
148
+ otp : " 27"
149
+ - cc : " clang-17"
150
+ cxx : " clang++-17"
151
+ compiler_pkgs : " clang-17"
152
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
153
+ os : " ubuntu-24.04"
154
+ otp : " 27"
155
+ - cc : " clang-18"
156
+ cxx : " clang++-18"
157
+ compiler_pkgs : " clang-18"
158
+ cmake_opts_other : " -DAVM_WARNINGS_ARE_ERRORS=ON"
159
+ os : " ubuntu-24.04"
160
+ # otp: all
161
+
162
+ - otp : " 25"
163
+ elixir_version : " 1.14"
164
+
165
+ - otp : " 26"
166
+ elixir_version : " 1.17"
167
+
168
+ - otp : " 27"
169
+ elixir_version : " 1.17"
170
+
171
+ # Old versions of OTP/Elixir
172
+ - os : " ubuntu-20.04"
173
+ cc : " cc"
174
+ cxx : " c++"
175
+ otp : " 21"
176
+ cflags : " "
130
177
elixir_version : " 1.7"
131
178
132
- - otp : " 22"
179
+ - os : " ubuntu-20.04"
180
+ cc : " cc"
181
+ cxx : " c++"
182
+ otp : " 22"
183
+ cflags : " "
133
184
elixir_version : " 1.8"
134
185
135
- - otp : " 23"
186
+ - os : " ubuntu-20.04"
187
+ cc : " cc"
188
+ cxx : " c++"
189
+ otp : " 23"
190
+ cflags : " "
136
191
elixir_version : " 1.11"
137
192
138
- - otp : " 24"
139
- elixir_version : " 1.14"
140
-
141
- - otp : " 25"
193
+ - os : " ubuntu-22.04"
194
+ cc : " cc"
195
+ cxx : " c++"
196
+ otp : " 24"
197
+ cflags : " "
142
198
elixir_version : " 1.14"
143
199
144
- - otp : " master"
200
+ # master version of OTP/Elixir
201
+ - os : " ubuntu-24.04"
202
+ cc : " cc"
203
+ cxx : " c++"
204
+ otp : " master"
145
205
elixir_version : " master"
146
206
147
207
# Additional default compiler builds
148
208
- os : " ubuntu-20.04"
149
209
cc : " cc"
150
210
cxx : " c++"
151
- otp : " 25 "
211
+ otp : " 27 "
152
212
cflags : " "
153
- elixir_version : " 1.14 "
213
+ elixir_version : " 1.17 "
154
214
155
215
- os : " ubuntu-22.04"
156
216
cc : " cc"
157
217
cxx : " c++"
158
- otp : " 25 "
218
+ otp : " 27 "
159
219
cflags : " "
160
- elixir_version : " 1.14 "
220
+ elixir_version : " 1.17 "
161
221
162
222
# Additional latest & -Os compiler builds
163
- - os : " ubuntu-22 .04"
164
- cc : " gcc-12 "
165
- cxx : " g++-12 "
166
- otp : " 24 "
223
+ - os : " ubuntu-24 .04"
224
+ cc : " gcc-14 "
225
+ cxx : " g++-14 "
226
+ otp : " 27 "
167
227
cflags : " -Os"
168
- elixir_version : " 1.14 "
169
- compiler_pkgs : " gcc-12 g++-12 "
228
+ elixir_version : " 1.17 "
229
+ compiler_pkgs : " gcc-14 g++-14 "
170
230
171
- # - os: "ubuntu-22 .04"
172
- # cc: "clang-14 "
173
- # cxx: "clang++-14 "
174
- # otp: "24 "
175
- # cflags: "-Os"
176
- # elixir_version: "1.14 "
177
- # compiler_pkgs: "clang-14 "
231
+ - os : " ubuntu-24 .04"
232
+ cc : " clang-18 "
233
+ cxx : " clang++-18 "
234
+ otp : " 27 "
235
+ cflags : " -Os"
236
+ elixir_version : " 1.17 "
237
+ compiler_pkgs : " clang-18 "
178
238
179
239
# Additional 32 bits build
180
240
- os : " ubuntu-20.04"
@@ -198,7 +258,7 @@ jobs:
198
258
steps :
199
259
# Setup
200
260
- name : " Checkout repo"
201
- uses : actions/checkout@v3
261
+ uses : actions/checkout@v4
202
262
with :
203
263
submodules : ' recursive'
204
264
@@ -238,7 +298,7 @@ jobs:
238
298
- name : " Build: create build dir"
239
299
run : mkdir build
240
300
241
- - uses : actions/cache@v3
301
+ - uses : actions/cache@v4
242
302
id : cache
243
303
with :
244
304
path : ' build/tests/**/*.beam'
@@ -262,7 +322,7 @@ jobs:
262
322
263
323
# Test
264
324
- name : " Test: test-erlang"
265
- timeout-minutes : 10
325
+ timeout-minutes : 15
266
326
working-directory : build
267
327
run : |
268
328
./tests/test-erlang -s prime_smp
@@ -288,7 +348,7 @@ jobs:
288
348
valgrind ./tests/test-structs
289
349
290
350
- name : " Test: test_estdlib.avm"
291
- timeout-minutes : 10
351
+ timeout-minutes : 5
292
352
working-directory : build
293
353
run : |
294
354
./src/AtomVM ./tests/libs/estdlib/test_estdlib.avm
0 commit comments