|
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