Skip to content

Commit 8967580

Browse files
committed
[GR-67643] Move js gate jobs to tiers.
PullRequest: js/3564
2 parents 66155b3 + 73083b1 commit 8967580

File tree

6 files changed

+66
-39
lines changed

6 files changed

+66
-39
lines changed

ci.jsonnet

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,20 @@ local graalNodeJs = import 'graal-nodejs/ci.jsonnet';
66
// Used to run fewer jobs
77
local useOverlay = true,
88

9-
local overlay = 'fda4a3211dbb6d4447ec9ecb20bbeededef24ecd',
9+
local overlay = '56d49c4fb4833df72d3d64928ca31caaab60d74e',
1010

1111
local no_overlay = 'cb733e564850cd37b685fcef6f3c16b59802b22c',
1212

1313
overlay: if useOverlay then overlay else no_overlay,
1414

15-
specVersion: "3",
15+
specVersion: "7",
16+
17+
tierConfig: {
18+
"tier1": "gate",
19+
"tier2": "gate",
20+
"tier3": "gate",
21+
"tier4": "post-merge",
22+
},
1623

1724
builds: graalJs.builds + graalNodeJs.builds,
1825

@@ -89,6 +96,7 @@ local graalNodeJs = import 'graal-nodejs/ci.jsonnet';
8996

9097
ce:: {defs:: $.defs, graalvm:: self.defs.ce},
9198
ee:: {defs:: $.defs, graalvm:: self.defs.ee},
99+
local targets = common.targets,
92100

93101
jdklatestPlatforms:: [
94102
common.jdklatest + common.linux_amd64,
@@ -104,6 +112,18 @@ local graalNodeJs = import 'graal-nodejs/ci.jsonnet';
104112
common.jdklatest + common.linux_amd64,
105113
],
106114

115+
tier1Platforms:: [common.jdklatest + common.linux_amd64],
116+
tier2Platforms:: [common.jdklatest + common.linux_amd64],
117+
tier3Platforms:: [
118+
common.jdklatest + common.linux_amd64,
119+
common.jdklatest + common.linux_aarch64,
120+
common.jdklatest + common.darwin_aarch64,
121+
common.jdklatest + common.windows_amd64,
122+
],
123+
124+
promoteToTier1(platforms=$.tier1Platforms):: $.promoteToTarget(targets.tier1, platforms),
125+
promoteToTier2(platforms=$.tier2Platforms):: $.promoteToTarget(targets.tier2, platforms),
126+
107127
graalvm_jdk21:: common['graalvm-ee-21'],
108128
jdk21unchained:: common.jdklatest + {
109129
jdk:: 'jdk21',
@@ -296,8 +316,6 @@ local graalNodeJs = import 'graal-nodejs/ci.jsonnet';
296316
includePlatforms(platformSelector):: filterPlatforms(platformSelector),
297317
excludePlatforms(platformSelector):: filterPlatforms(makePlatformPredicate(exclude=platformSelector)),
298318

299-
gateOnMain:: self.promoteToTarget(common.gate, [self.mainGatePlatform]),
300-
301319
local flattenArrayRec(arr) =
302320
if std.isArray(arr) then
303321
if std.filter(std.isArray, arr) != [] then

common.jsonnet

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ local targets = {
2525
monthly:: {targets+: ['monthly'], targetName:: 'monthly'},
2626
ondemand:: {targets+: ['ondemand'], targetName:: 'ondemand'},
2727

28+
tier1:: {targets+: ['tier1'], targetName:: 'gate'},
29+
tier2:: {targets+: ['tier2'], targetName:: 'gate'},
30+
tier3:: {targets+: ['tier3'], targetName:: 'gate'},
31+
tier4:: {targets+: ['tier4'], targetName:: 'postmerge'},
32+
2833
bench:: self.postMerge + {targets+: ['bench'], targetName:: super.targetName + "-bench"},
2934
dailyBench:: self.daily + {targets+: ['bench'], targetName:: super.targetName + "-bench"},
3035
weeklyBench:: self.weekly + {targets+: ['bench'], targetName:: super.targetName + "-bench"},

graal-js/ci.jsonnet

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -134,41 +134,42 @@ local ci = import '../ci.jsonnet';
134134
local defaultToTarget = ci.defaultToTarget,
135135
local includePlatforms = ci.includePlatforms,
136136
local excludePlatforms = ci.excludePlatforms,
137-
local gateOnMain = ci.gateOnMain,
137+
local tier1 = ci.promoteToTier1(),
138+
local tier2 = ci.promoteToTier2(),
139+
local tier3 = ci.promoteToTarget(common.tier3, [ci.mainGatePlatform]),
138140

139141
// Style gates
140142
local styleBuilds = generateBuilds([
141-
graalJs + common.gateStyleFullBuild + {name: 'style-fullbuild'}
142-
], platforms=ci.styleGatePlatforms, defaultTarget=common.gate),
143+
graalJs + common.gateStyleFullBuild + tier1 + {name: 'style-fullbuild'}
144+
], platforms=ci.styleGatePlatforms, defaultTarget=common.tier3),
143145

144146
// Builds that should run on all supported platforms
145147

146148
local testingBuilds = local bs = [
147-
graalJs + gateTags('default') + ce + {name: 'default-ce'} +
148-
promoteToTarget(common.gate, [common.jdklatest + common.linux_amd64, common.jdklatest + common.linux_aarch64, common.jdklatest + common.windows_amd64]),
149-
graalJs + gateTags('default') + ee + {name: 'default-ee'} +
150-
promoteToTarget(common.gate, [common.jdklatest + common.linux_amd64, common.jdklatest + common.darwin_aarch64]) +
149+
graalJs + gateTags('default') + tier2 + ce + {name: 'default-ce'} +
150+
promoteToTarget(common.tier3, [common.jdklatest + common.linux_aarch64, common.jdklatest + common.windows_amd64]),
151+
graalJs + gateTags('default') + tier2 + ee + {name: 'default-ee'} +
152+
promoteToTarget(common.tier3, [common.jdklatest + common.darwin_aarch64]) +
151153
promoteToTarget(common.postMerge, [common.jdklatest + common.darwin_amd64]),
152154

153-
graalJs + gateTags('noic') + {name: 'noic'} + gateOnMain,
154-
graalJs + gateTags('directbytebuffer') + {name: 'directbytebuffer'} + gateOnMain,
155-
graalJs + gateTags('cloneuninitialized') + {name: 'cloneuninitialized'} + gateOnMain,
156-
graalJs + gateTags('lazytranslation') + {name: 'lazytranslation'} + gateOnMain,
157-
graalJs + gateTags('shareengine') + {name: 'shareengine'} + gateOnMain,
158-
graalJs + gateTags('latestversion') + {name: 'latestversion'} + gateOnMain,
159-
graalJs + gateTags('instrument') + {name: 'instrument'} + gateOnMain,
160-
graalJs + gateTags('tck') + {name: 'tck'} + gateOnMain +
155+
graalJs + gateTags('noic') + tier3 + {name: 'noic'},
156+
graalJs + gateTags('directbytebuffer') + tier3 + {name: 'directbytebuffer'},
157+
graalJs + gateTags('cloneuninitialized') + tier3 + {name: 'cloneuninitialized'},
158+
graalJs + gateTags('lazytranslation') + tier3 + {name: 'lazytranslation'},
159+
graalJs + gateTags('shareengine') + tier3 + {name: 'shareengine'},
160+
graalJs + gateTags('latestversion') + tier3 + {name: 'latestversion'},
161+
graalJs + gateTags('instrument') + tier2 + {name: 'instrument'},
162+
graalJs + gateTags('tck') + tier2 + {name: 'tck'} +
161163
excludePlatforms([common.darwin_amd64]), # Timeout/OOME
162-
graalJs + webassemblyTest + {name: 'webassembly'} + gateOnMain,
163-
graalJs + nativeImageSmokeTest + {name: 'native-image-smoke-test'} + gateOnMain,
164-
graalJs + auxEngineCache + ee + {name: 'aux-engine-cache'} + gateOnMain +
164+
graalJs + webassemblyTest + tier2 + {name: 'webassembly'},
165+
graalJs + nativeImageSmokeTest + tier2 + {name: 'native-image-smoke-test'},
166+
graalJs + auxEngineCache + tier2 + ee + {name: 'aux-engine-cache'} +
165167
excludePlatforms([common.windows_amd64, common.darwin_amd64]), # unsupported on windows, too slow on darwin-amd64
166168

167169
// downstream graal gate
168-
graalJs + downstreamGraal + {name: 'downstream-graal'} +
169-
promoteToTarget(common.gate, [ci.mainGatePlatform]) +
170+
graalJs + downstreamGraal + tier2 + {name: 'downstream-graal'} +
170171
includePlatforms([ci.mainGatePlatform]), # GR-62152: language permissions tool supports only linux
171-
graalJs + downstreamSubstratevmEE + {environment+: {TAGS: 'downtest_js'}} + {name: 'downstream-substratevm-enterprise'} + gateOnMain +
172+
graalJs + downstreamSubstratevmEE + {environment+: {TAGS: 'downtest_js'}} + tier3 + {name: 'downstream-substratevm-enterprise'} +
172173
excludePlatforms([common.darwin_amd64]) + # Too slow
173174
excludePlatforms([common.linux_aarch64]), # Fails on Linux AArch64 with "Creation of the VM failed."
174175

@@ -193,7 +194,7 @@ local ci = import '../ci.jsonnet';
193194

194195
// Builds that only need to run on one platform
195196
local otherBuilds = generateBuilds([
196-
graalJs + common.gate + mavenDeployDryRun + {name: 'maven-dry-run'},
197+
graalJs + common.tier3 + mavenDeployDryRun + {name: 'maven-dry-run'},
197198
# Note: weekly coverage is sync'ed with the graal repo (while ondemand is not).
198199
graalJs + common.weekly + gateCoverage + {name: 'coverage'},
199200
graalJs + common.ondemand + gateCoverage + {name: 'coverage'},

graal-js/mx.graal-js/suite.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# pylint: disable=line-too-long
22
suite = {
3-
"mxversion" : "7.45.0",
3+
"mxversion" : "7.58.0",
44

55
"name" : "graal-js",
66

@@ -121,6 +121,7 @@
121121
"annotationProcessors" : ["truffle:TRUFFLE_DSL_PROCESSOR", "TRUFFLE_JS_FACTORY_PROCESSOR"],
122122
"jacoco" : "include",
123123
"spotbugs" : "true",
124+
"spotbugsIgnoresGenerated" : True,
124125
"javaCompliance" : "17+",
125126
"checkstyleVersion" : "10.21.0",
126127
"workingSets" : "Truffle,JavaScript",

graal-nodejs/ci.jsonnet

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -145,44 +145,45 @@ local cicommon = import '../ci/common.jsonnet';
145145
local defaultToTarget = ci.defaultToTarget,
146146
local includePlatforms = ci.includePlatforms,
147147
local excludePlatforms = ci.excludePlatforms,
148-
local gateOnMain = ci.gateOnMain,
148+
local tier1 = ci.promoteToTier1(),
149+
local tier2 = ci.promoteToTier2(),
149150

150151
// Style gates
151152
local styleBuilds = generateBuilds([
152-
graalNodeJs + common.gateStyleFullBuild + {name: 'style-fullbuild'}
153-
], platforms=ci.styleGatePlatforms, defaultTarget=common.gate),
153+
graalNodeJs + common.gateStyleFullBuild + tier2 + {name: 'style-fullbuild'}
154+
], platforms=ci.styleGatePlatforms, defaultTarget=common.tier3),
154155

155156
// Builds that should run on all supported platforms
156157
local testingBuilds = generateBuilds([
157158
graalNodeJs + build + defaultGateTags + {dynamicimports+:: ['/wasm']} + {name: 'default'} +
158-
promoteToTarget(common.gate, [common.jdklatest + common.linux_amd64, common.jdklatest + common.linux_aarch64, common.jdklatest + common.darwin_aarch64, common.jdklatest + common.windows_amd64]) +
159+
promoteToTarget(common.tier3, ci.tier3Platforms) +
159160
promoteToTarget(common.postMerge, [common.jdklatest + common.darwin_amd64]),
160161

161162
graalNodeJs + vm_env + build + gateVmSmokeTest + ce + {name: 'graalvm-ce'} +
162-
promoteToTarget(common.gate, [ci.mainGatePlatform]) +
163-
promoteToTarget(common.gate, [common.jdklatest + common.darwin_aarch64, common.jdklatest + common.windows_amd64]) +
163+
promoteToTarget(common.tier3, [common.jdklatest + common.linux_amd64, common.jdklatest + common.darwin_aarch64, common.jdklatest + common.windows_amd64]) +
164164
promoteToTarget(common.postMerge, [common.jdklatest + common.darwin_amd64]),
165165
graalNodeJs + vm_env + build + gateVmSmokeTest + ee + {name: 'graalvm-ee'} +
166-
promoteToTarget(common.gate, [ci.mainGatePlatform]),
166+
promoteToTarget(common.tier3, [ci.mainGatePlatform]),
167167

168-
graalNodeJs + vm_env + build + auxEngineCache + ee + {name: 'aux-engine-cache'} + gateOnMain +
168+
graalNodeJs + vm_env + build + auxEngineCache + ee + {name: 'aux-engine-cache'} +
169+
promoteToTarget(common.tier3, [ci.mainGatePlatform]) +
169170
excludePlatforms([common.windows_amd64, common.darwin_amd64]), # unsupported on windows, too slow on darwin-amd64
170171
] +
171172
// mx makeinnodeenv requires Visual Studio build tools on Windows.
172-
[gateOnMain + excludePlatforms([common.windows_amd64]) + b for b in [
173+
[promoteToTarget(common.tier3, [ci.mainGatePlatform]) + excludePlatforms([common.windows_amd64]) + b for b in [
173174
graalNodeJs + buildAddons + testNode('addons', max_heap='4G') + maxHeapOnWindows('512M') + {name: 'addons'},
174175
graalNodeJs + buildNodeAPI + testNode('node-api', max_heap='4G') + maxHeapOnWindows('512M') + {name: 'node-api'},
175176
graalNodeJs + buildJSNativeAPI + testNode('js-native-api', max_heap='4G') + maxHeapOnWindows('512M') + {name: 'js-native-api'},
176177
]] +
177-
[gateOnMain + promoteToTarget(common.gate, [common.jdklatest + common.windows_amd64]) + b for b in [
178+
[promoteToTarget(common.tier3, [common.jdklatest + common.linux_amd64, common.jdklatest + common.windows_amd64]) + b for b in [
178179
graalNodeJs + vm_env + build + testNode('async-hooks', max_heap='4G') + maxHeapOnWindows('512M') + {name: 'async-hooks'},
179180
graalNodeJs + vm_env + build + testNode('es-module', max_heap='4G') + maxHeapOnWindows('512M') + {name: 'es-module'},
180181
# We run the `sequential` tests with a smaller heap because `test/sequential/test-child-process-pass-fd.js` starts 80 child processes.
181182
graalNodeJs + vm_env + build + testNode('sequential', max_heap='4G') + maxHeapOnWindows('512M') + {name: 'sequential'} +
182183
excludePlatforms([common.darwin_amd64]), # times out on darwin-amd64
183184
]] +
184185
# too slow on darwin-amd64
185-
[gateOnMain + excludePlatforms([common.darwin_amd64]) + b for b in [
186+
[promoteToTarget(common.tier3, [ci.mainGatePlatform]) + excludePlatforms([common.darwin_amd64]) + b for b in [
186187
graalNodeJs + vm_env + build + testNode(parallelNoHttp2, part='-r0,5', max_heap='4G') + {name: 'parallel-1'},
187188
graalNodeJs + vm_env + build + testNode(parallelNoHttp2, part='-r1,5', max_heap='4G') + {name: 'parallel-2'},
188189
graalNodeJs + vm_env + build + testNode(parallelNoHttp2, part='-r2,5', max_heap='4G') + {name: 'parallel-3'},

graal-nodejs/mx.graal-nodejs/suite.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
suite = {
3-
"mxversion" : "7.45.0",
3+
"mxversion" : "7.58.0",
44
"name" : "graal-nodejs",
55
"version" : "26.0.0",
66
"release" : False,
@@ -95,6 +95,7 @@
9595
],
9696
"annotationProcessors" : ["truffle:TRUFFLE_DSL_PROCESSOR"],
9797
"spotbugs" : "true",
98+
"spotbugsIgnoresGenerated" : True,
9899
"javaCompliance" : "17+",
99100
"checkstyleVersion" : "10.21.0",
100101
"workingSets" : "Truffle,JavaScript,NodeJS",

0 commit comments

Comments
 (0)