|
8 | 8 | local darwin_amd64 = common.darwin_amd64, |
9 | 9 | local darwin_aarch64 = common.darwin_aarch64, |
10 | 10 | local linux_amd64 = common.linux_amd64, |
| 11 | + local linux_aarch64 = common.linux_aarch64, |
11 | 12 | local windows_amd64 = common.windows_amd64, |
12 | 13 |
|
| 14 | + local winDevKit(jdk) = |
| 15 | + devkits[ |
| 16 | + if jdk.jdk_version == 21 |
| 17 | + then "windows-jdk21" |
| 18 | + else "windows-jdkLatest" |
| 19 | + ], |
| 20 | + |
13 | 21 | local truffle_common = { |
14 | 22 | setup+: [ |
15 | 23 | ["cd", "./truffle"], |
16 | 24 | ], |
17 | | - targets: ["gate"], |
18 | | - timelimit: "30:00", |
19 | | - }, |
20 | | - |
21 | | - local guard = { |
22 | | - guard+: { |
23 | | - includes+: ["<graal>/sdk/**", "<graal>/truffle/**", "**.jsonnet"] + top_level_ci, |
24 | | - } |
| 25 | + notify_groups:: ["truffle"], |
25 | 26 | }, |
26 | 27 |
|
27 | 28 | local bench_common = { |
|
35 | 36 | ] |
36 | 37 | }, |
37 | 38 |
|
38 | | - local gate_lite(target) = truffle_common + { |
39 | | - name: target + '-truffle-lite-oraclejdk-' + self.jdk_name + '-' + self.os + '-' + self.arch, |
40 | | - run: [ |
41 | | - ["mx", "build"], |
42 | | - ["mx", "unittest", "--verbose"], |
43 | | - ], |
44 | | - targets: [target], |
45 | | - }, |
46 | | - |
47 | | - local sigtest = truffle_common + { |
48 | | - name: 'gate-truffle-sigtest-' + self.jdk_name, |
49 | | - run: [ |
50 | | - ["mx", "build"], |
51 | | - ["mx", "sigtest", "--check", (if self.jdk_version == 21 then "all" else "bin")], |
52 | | - ], |
53 | | - }, |
54 | | - |
55 | | - local graalVMCELatest = common.labsjdkLatest + common.deps.svm + { |
56 | | - mx_build_graalvm_cmd: ["mx", "-p", "../vm", "--env", "ce", "--native-images=lib:jvmcicompiler"], |
57 | | - run+: [ |
58 | | - self.mx_build_graalvm_cmd + ["build"], |
59 | | - ["set-export", "JAVA_HOME", self.mx_build_graalvm_cmd + ["--quiet", "--no-warning", "graalvm-home"]] |
60 | | - ] |
61 | | - }, |
62 | | - |
63 | 39 | local simple_tool_maven_project_gate = truffle_common + { |
64 | | - name: 'gate-external-mvn-simpletool-' + self.jdk_name, |
| 40 | + name: self.name_prefix + 'truffle-simpletool-maven-' + self.jdk_name + '-' + self.os + '-' + self.arch, |
65 | 41 | packages+: { |
66 | 42 | maven: "==3.3.9" |
67 | 43 | }, |
|
80 | 56 | }, |
81 | 57 |
|
82 | 58 | local simple_language_maven_project_gate = truffle_common + { |
83 | | - name: 'gate-external-mvn-simplelanguage-' + self.jdk_name, |
| 59 | + name: self.name_prefix + 'truffle-simplelanguage-maven-' + self.jdk_name + '-' + self.os + '-' + self.arch, |
84 | 60 | packages+: { |
85 | 61 | maven: "==3.3.9", |
86 | 62 | ruby: "==3.0.2", |
|
103 | 79 | ], |
104 | 80 | }, |
105 | 81 |
|
106 | | - local truffle_jvm_gate = truffle_common + { |
| 82 | + local truffle_common_gate = truffle_common + common.deps.eclipse + common.deps.jdt + common.deps.spotbugs { |
| 83 | + components+: ["truffle"], |
| 84 | + }, |
| 85 | + |
| 86 | + # this is only valid for gates that depend only on truffle files |
| 87 | + # do not use for latest GraalVM builds |
| 88 | + local guard = { |
| 89 | + guard+: { |
| 90 | + includes+: ["<graal>/sdk/**", "<graal>/truffle/**", "**.jsonnet"] + top_level_ci, |
| 91 | + } |
| 92 | + }, |
| 93 | + |
| 94 | + local truffle_style_gate = truffle_common_gate + guard + { |
| 95 | + name: self.name_prefix + 'truffle-style-' + self.truffle_jdk_name + '-' + self.os + '-' + self.arch, |
107 | 96 | run+: [ |
108 | | - ['mx', '--no-jlinking', 'gate', '--no-warning-as-error', '--tags', 'build,truffle-jvm'], |
| 97 | + ["mx", "--strict-compliance", "gate", "--strict-mode", "--tag", "style,fullbuild,sigtest"], |
109 | 98 | ], |
110 | | - notify_groups: ["truffle"], |
111 | | - components+: ["truffle"], |
112 | | - timelimit: '1:15:00', |
113 | | - name: 'gate-truffle-ce-jvm-' + self.jdk_name + '-linux-amd64', |
114 | 99 | }, |
115 | 100 |
|
116 | | - # runs only truffle native unittests |
117 | | - local truffle_native_unittest_gate = truffle_common + { |
118 | | - gate_tag_suffix: '', |
| 101 | + local truffle_test_full_gate = truffle_common_gate + guard + { |
| 102 | + name: self.name_prefix + 'truffle-full-test-' + self.truffle_jdk_name + '-' + self.os + '-' + self.arch, |
119 | 103 | run+: [ |
120 | | - ['mx', '--no-jlinking', 'gate', '--no-warning-as-error', '--tags', 'build,unittest-native' + self.gate_tag_suffix], |
| 104 | + ["mx", "--strict-compliance", "gate", "--strict-mode", "--tag", "style,fullbuild,fulltest"] |
| 105 | + ], |
| 106 | + }, |
| 107 | + local truffle_test_lite_gate= truffle_common_gate + guard + { |
| 108 | + name: self.name_prefix + 'truffle-lite-test-' + self.truffle_jdk_name + '-' + self.os + '-' + self.arch, |
| 109 | + run+: [ |
| 110 | + ["mx", "--strict-compliance", "gate", "--strict-mode", "--tag", "build,test"], |
121 | 111 | ], |
122 | | - notify_groups: ["truffle"], |
123 | | - components+: ["truffle"], |
124 | | - timelimit: '1:00:00', |
125 | | - name: 'gate-truffle-ce-native-unittest' + self.gate_tag_suffix + '-jvm-' + self.jdk_name + '-' + self.os + '-' + self.arch, |
126 | 112 | }, |
127 | 113 |
|
128 | | - # runs native SL tests and truffle native unittests |
129 | | - local truffle_native_gate = truffle_common + { |
130 | | - gate_tag_suffix: '', |
| 114 | + local truffle_test_super_lite_gate = truffle_common_gate + guard + { |
| 115 | + name: self.name_prefix + 'truffle-super-lite-test-' + self.truffle_jdk_name + '-' + self.os + '-' + self.arch, |
131 | 116 | run+: [ |
132 | | - ['mx', '--no-jlinking', 'gate', '--no-warning-as-error', '--tags', 'build,truffle-native' + self.gate_tag_suffix], |
| 117 | + ["mx", "build"], |
| 118 | + ["mx", "unittest", "--verbose"], |
133 | 119 | ], |
134 | | - notify_groups: ["truffle"], |
135 | | - components+: ["truffle"], |
136 | | - timelimit: '1:30:00', |
137 | | - name: 'gate-truffle-ce-native' + self.gate_tag_suffix + '-jvm-' + self.jdk_name + '-' + self.os + '-' + self.arch, |
138 | 120 | }, |
139 | 121 |
|
140 | | - local truffle_gate = truffle_common + common.deps.eclipse + common.deps.jdt + common.deps.spotbugs { |
141 | | - name: 'gate-truffle-oraclejdk-' + self.jdk_name + '-' + self.os + '-' + self.arch, |
142 | | - # The `fulltest` tag includes all Truffle test gate tasks except those that require GraalVM. |
143 | | - run: [["mx", "--strict-compliance", "gate", "--strict-mode", "--tag"] + (if (self.os == 'windows') then ["style:0:6,fullbuild,fulltest"] else ["style,fullbuild,fulltest"])], |
144 | | - environment+: if self.os == 'windows' then { |
145 | | - ECLIPSE_EXE: "$ECLIPSE\\eclipse.exe", |
146 | | - } else {}, |
| 122 | + local truffle_coverage = truffle_common + common.deps.eclipse + common.deps.jdt + guard + { |
| 123 | + name: self.name_prefix + 'truffle-coverage-' + self.truffle_jdk_name + '-' + self.os + '-' + self.arch, |
| 124 | + run+: [ |
| 125 | + ["mx", "--strict-compliance", "gate", "--strict-mode", "--jacoco-relativize-paths", "--jacoco-omit-src-gen", "--jacocout", "coverage", "--jacoco-format", "lcov", "--tags", "build,fulltest"], |
| 126 | + ], |
| 127 | + teardown+: [ |
| 128 | + ["mx", "sversions", "--print-repositories", "--json", "|", "coverage-uploader.py", "--associated-repos", "-"], |
| 129 | + ], |
| 130 | + timelimit: "45:00", |
147 | 131 | }, |
148 | 132 |
|
149 | | - local truffle_weekly = common.weekly + {notify_groups:: ["truffle"]}, |
| 133 | + local jmh_benchmark = bench_common + { |
| 134 | + name: self.name_prefix + 'truffle-jmh-' + self.truffle_jdk_name + '-' + self.os + '-' + self.arch, |
| 135 | + notify_groups:: ["truffle_bench"], |
| 136 | + run+: [ |
| 137 | + ["mx", "--kill-with-sigquit", "benchmark", "--results-file", "${BENCH_RESULTS_FILE_PATH}", "truffle:*", "--", "--", "org.graalvm.truffle.benchmark"], |
| 138 | + ], |
| 139 | + timelimit: "3:00:00", |
| 140 | + teardown: [ |
| 141 | + ["bench-uploader.py", "${BENCH_RESULTS_FILE_PATH}"], |
| 142 | + ], |
| 143 | + }, |
| 144 | + |
| 145 | + local jmh_benchmark_test = bench_common + guard + { |
| 146 | + name: self.name_prefix + 'truffle-test-benchmarks-' + self.truffle_jdk_name + '-' + self.os + '-' + self.arch, |
| 147 | + run+: [ |
| 148 | + ["mx", "benchmark", "truffle:*", "--", "--jvm", "server", "--jvm-config", "graal-core", "--", "org.graalvm.truffle.benchmark", "-f", "1", "-wi", "1", "-w", "1", "-i", "1", "-r", "1"], |
| 149 | + ], |
| 150 | + }, |
| 151 | + |
| 152 | + local tier1 = common.tier1 + { |
| 153 | + name_prefix: "gate-", |
| 154 | + timelimit: "0:30:00" |
| 155 | + }, |
| 156 | + local tier2 = common.tier2 + { |
| 157 | + name_prefix: "gate-", |
| 158 | + timelimit: "01:00:00" |
| 159 | + }, |
| 160 | + local tier3 = common.tier3 + { |
| 161 | + name_prefix: "gate-", |
| 162 | + timelimit: "01:15:00" |
| 163 | + }, |
| 164 | + local daily = common.daily + { |
| 165 | + name_prefix: "daily-", |
| 166 | + timelimit: "04:00:00" |
| 167 | + }, |
| 168 | + local weekly = common.weekly + { |
| 169 | + name_prefix: "weekly-", |
| 170 | + timelimit: "04:00:00" |
| 171 | + }, |
| 172 | + local bench = common.weekly + { |
| 173 | + name_prefix: "bench-", |
| 174 | + timelimit: "04:00:00" |
| 175 | + }, |
| 176 | + |
| 177 | + local jdk_21_oracle = common.oraclejdk21 + {truffle_jdk_name: "oraclejdk-21"}, |
| 178 | + local jdk_latest_oracle = common.oraclejdkLatest + {truffle_jdk_name: "oraclejdk-latest"}, |
| 179 | + local jdk_latest_labs = common.labsjdkLatestCE+ {truffle_jdk_name: "labsjdk-latest"}, |
| 180 | + |
| 181 | + local jdk_latest_graalvm_ce = jdk_latest_labs + common.deps.svm + { |
| 182 | + truffle_jdk_name: "graalvm-ce-latest", |
| 183 | + mx_build_graalvm_cmd: ["mx", "-p", "../vm", "--env", "ce", "--native-images=lib:jvmcicompiler"], |
| 184 | + run+: [ |
| 185 | + self.mx_build_graalvm_cmd + ["build", "--force-javac"], |
| 186 | + ["set-export", "JAVA_HOME", self.mx_build_graalvm_cmd + ["--quiet", "--no-warning", "graalvm-home"]] |
| 187 | + ] |
| 188 | + }, |
| 189 | + |
| 190 | + local test_jdks = [jdk_latest_oracle, jdk_21_oracle], |
| 191 | + local graalvm_jdks = [jdk_latest_graalvm_ce], |
| 192 | + |
| 193 | + local forEach(arr, fn) = std.flattenArrays([fn(x) for x in arr]), |
150 | 194 |
|
151 | 195 | local _builds = std.flattenArrays([ |
| 196 | + |
| 197 | + # Regular Truffle gates |
| 198 | + [linux_amd64 + tier1 + jdk_latest_oracle + truffle_style_gate], |
| 199 | + |
| 200 | + forEach(test_jdks, function(jdk) |
152 | 201 | [ |
153 | | - linux_amd64 + jdk + sigtest + guard, |
154 | | - darwin_amd64 + jdk + truffle_weekly + gate_lite("daily") + guard, |
155 | | - darwin_aarch64 + jdk + truffle_weekly + gate_lite("gate") + guard, |
156 | | - ] for jdk in [common.oraclejdk21, common.oraclejdkLatest] |
157 | | - ]) + |
158 | | - [ |
159 | | - # The simple_language_maven_project_gate uses native-image, so we must run on labsjdk rather than oraclejdk |
160 | | - linux_amd64 + common.graalvmee21 + simple_language_maven_project_gate, |
161 | | - linux_amd64 + graalVMCELatest + simple_language_maven_project_gate, |
162 | | - # The simple_tool_maven_project_gate builds compiler, so we must run on labsjdk rather than oraclejdk because of compiler module rename |
163 | | - linux_amd64 + common.graalvmee21 + simple_tool_maven_project_gate, |
164 | | - linux_amd64 + graalVMCELatest + simple_tool_maven_project_gate, |
165 | | - # Truffle JVM gate |
166 | | - linux_amd64 + common.graalvmee21 + truffle_jvm_gate, |
167 | | - # GR-65191 |
168 | | - # linux_amd64 + common.oraclejdk24 + truffle_jvm_gate, |
169 | | - linux_amd64 + graalVMCELatest + truffle_jvm_gate, |
170 | | - # Truffle Native gate |
171 | | - linux_amd64 + common.graalvmee21 + truffle_native_gate, |
172 | | - linux_amd64 + common.graalvmee21 + truffle_native_gate + { |
173 | | - gate_tag_suffix: '-quickbuild' |
174 | | - }, |
175 | | - linux_amd64 + graalVMCELatest + truffle_native_gate, |
176 | | - windows_amd64 + graalVMCELatest + devkits["windows-jdkLatest"] + truffle_native_unittest_gate, |
177 | | - linux_amd64 + graalVMCELatest + truffle_native_gate + { |
178 | | - gate_tag_suffix: '-quickbuild' |
179 | | - }, |
180 | | - windows_amd64 + graalVMCELatest + devkits["windows-jdkLatest"] + truffle_native_unittest_gate + { |
181 | | - gate_tag_suffix: '-quickbuild' |
182 | | - }, |
| 202 | + linux_amd64 + tier2 + jdk + truffle_test_lite_gate, |
| 203 | + linux_amd64 + tier3 + jdk + truffle_test_full_gate, |
183 | 204 |
|
184 | | - linux_amd64 + common.oraclejdk21 + truffle_gate + guard + {timelimit: "1:30:00"}, |
185 | | - linux_amd64 + common.oraclejdkLatest + truffle_gate + guard + {environment+: {DISABLE_DSL_STATE_BITS_TESTS: "true"}}, |
| 205 | + linux_aarch64 + tier3 + jdk + truffle_test_lite_gate, |
| 206 | + darwin_aarch64 + tier3 + jdk + truffle_test_lite_gate, |
| 207 | + windows_amd64 + tier3 + jdk + truffle_test_lite_gate + winDevKit(jdk), |
186 | 208 |
|
187 | | - truffle_common + linux_amd64 + common.oraclejdkLatest + guard { |
188 | | - name: "gate-truffle-javadoc-" + self.jdk_name, |
189 | | - run: [ |
190 | | - ["mx", "build"], |
191 | | - ["mx", "javadoc"], |
192 | | - ], |
193 | | - }, |
| 209 | + # we do have very few resources for Darwin AMD64 so only run weekly |
| 210 | + darwin_amd64 + weekly + jdk + truffle_test_lite_gate, |
| 211 | + ] |
| 212 | + ), |
194 | 213 |
|
195 | | - truffle_common + linux_amd64 + common.oraclejdk21 + guard { |
196 | | - name: "gate-truffle-slow-path-unittests", |
197 | | - run: [ |
198 | | - ["mx", "build", "-n", "-c", "-A-Atruffle.dsl.GenerateSlowPathOnly=true"], |
199 | | - # only those tests exercise meaningfully implemented nodes |
200 | | - # e.g. com.oracle.truffle.api.dsl.test uses nodes that intentionally produce |
201 | | - # different results from fast/slow path specializations to test their activation |
202 | | - ["mx", "unittest", "com.oracle.truffle.api.test.polyglot", "com.oracle.truffle.nfi.test"], |
203 | | - ], |
204 | | - }, |
| 214 | + # SimpleLanguage Maven Integration Test |
| 215 | + forEach(graalvm_jdks, function(jdk) |
| 216 | + [ |
| 217 | + linux_amd64 + tier3 + jdk + simple_language_maven_project_gate, |
205 | 218 |
|
206 | | - windows_amd64 + truffle_gate + common.oraclejdk21 + devkits["windows-jdk21"] + guard + {timelimit: "1:30:00"}, |
207 | | - windows_amd64 + truffle_gate + common.oraclejdkLatest + devkits["windows-jdkLatest"] + guard + {timelimit: "1:00:00", environment+: {DISABLE_DSL_STATE_BITS_TESTS: "true"}}, |
208 | | - |
209 | | - truffle_common + linux_amd64 + common.oraclejdk21 + common.deps.eclipse + common.deps.jdt + guard + { |
210 | | - name: "weekly-truffle-coverage-21-linux-amd64", |
211 | | - run: [ |
212 | | - ["mx", "--strict-compliance", "gate", "--strict-mode", "--jacoco-relativize-paths", "--jacoco-omit-src-gen", "--jacocout", "coverage", "--jacoco-format", "lcov", "--tags", "build,fulltest"], |
213 | | - ], |
214 | | - teardown+: [ |
215 | | - ["mx", "sversions", "--print-repositories", "--json", "|", "coverage-uploader.py", "--associated-repos", "-"], |
216 | | - ], |
217 | | - targets: ["weekly"], |
218 | | - notify_groups:: ["truffle"], |
219 | | - timelimit: "45:00", |
220 | | - }, |
| 219 | + linux_aarch64 + weekly + jdk + simple_language_maven_project_gate, |
| 220 | + darwin_amd64 + weekly + jdk + simple_language_maven_project_gate, |
| 221 | + darwin_aarch64 + weekly + jdk + simple_language_maven_project_gate, |
221 | 222 |
|
222 | | - # BENCHMARKS |
223 | | - |
224 | | - bench_hw.x52 + common.labsjdkLatestCE + bench_common + { |
225 | | - name: "bench-truffle-jmh-linux-amd64", |
226 | | - notify_groups:: ["truffle_bench"], |
227 | | - run: [ |
228 | | - ["mx", "--kill-with-sigquit", "benchmark", "--results-file", "${BENCH_RESULTS_FILE_PATH}", "truffle:*", "--", "--", "com.oracle.truffle"], |
229 | | - ], |
230 | | - targets+: ["weekly"], |
231 | | - timelimit: "3:00:00", |
232 | | - teardown: [ |
233 | | - ["bench-uploader.py", "${BENCH_RESULTS_FILE_PATH}"], |
234 | | - ], |
235 | | - }, |
| 223 | + # GR-68277 currently unsupported |
| 224 | + # windows_amd64 + weekly + jdk + simple_language_maven_project_gate + winDevKit(jdk), |
| 225 | + ] |
| 226 | + ), |
236 | 227 |
|
237 | | - linux_amd64 + common.labsjdkLatestCE + bench_common + { |
238 | | - name: "gate-truffle-test-benchmarks", |
239 | | - run: [ |
240 | | - ["mx", "benchmark", "truffle:*", "--", "--jvm", "server", "--jvm-config", "graal-core", "--", "com.oracle.truffle", "-f", "1", "-wi", "1", "-w", "1", "-i", "1", "-r", "1"], |
241 | | - ], |
242 | | - targets: ["gate"], |
243 | | - timelimit: "30:00", |
244 | | - }, |
245 | | - ], |
| 228 | + # SimpleTool Maven Integration Test |
| 229 | + forEach(graalvm_jdks, function(jdk) |
| 230 | + [ |
| 231 | + linux_amd64 + tier3 + jdk + simple_tool_maven_project_gate, |
| 232 | + |
| 233 | + linux_aarch64 + weekly + jdk + simple_tool_maven_project_gate, |
| 234 | + darwin_amd64 + weekly + jdk + simple_tool_maven_project_gate, |
| 235 | + darwin_aarch64 + weekly + jdk + simple_tool_maven_project_gate, |
| 236 | + |
| 237 | + # GR-68277 currently unsupported |
| 238 | + # windows_amd64 + weekly + jdk + simple_tool_maven_project_gate + winDevKit(jdk), |
| 239 | + ] |
| 240 | + ), |
| 241 | + |
| 242 | + # Truffle Coverage |
| 243 | + [linux_amd64 + weekly + jdk_21_oracle + truffle_coverage], |
246 | 244 |
|
| 245 | + # Truffle Benchmarks |
| 246 | + [linux_amd64 + tier3 + jdk_latest_labs + jmh_benchmark_test], |
| 247 | + [bench_hw.x52 + bench + jdk_latest_labs + jmh_benchmark] |
| 248 | + ]), |
247 | 249 | builds: utils.add_defined_in(_builds, std.thisFile), |
248 | 250 | } |
0 commit comments