From 33f147b33f4b42837bf97fb76bb9ad4f5973fd44 Mon Sep 17 00:00:00 2001 From: Danilo Ansaloni Date: Thu, 14 Aug 2025 15:57:35 +0200 Subject: [PATCH 1/6] Delete jobs that used to test the component installer (gu). --- vm/ci/ci_includes/vm.jsonnet | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/vm/ci/ci_includes/vm.jsonnet b/vm/ci/ci_includes/vm.jsonnet index d793fb11da68..0f89f4c16f9f 100644 --- a/vm/ci/ci_includes/vm.jsonnet +++ b/vm/ci/ci_includes/vm.jsonnet @@ -86,22 +86,6 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; }, local builds = [ - utils.add_gate_predicate(self.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'gate') + { - run: [ - ['mx', 'build'], - ['mx', 'unittest', '--suite', 'vm'], - ], - name: 'gate-vm-unittest-linux-amd64', - timelimit: '30:00', - }, ['sdk', 'truffle', 'vm']), - utils.add_gate_predicate(self.vm_java_Latest + graal_common.devkits['windows-jdkLatest'] + vm_common.vm_base('windows', 'amd64', 'gate') + { - run: [ - ['mx', 'build'], - ['mx', 'unittest', '--suite', 'vm'], - ], - name: 'gate-vm-unittest-windows-amd64', - timelimit: '30:00', - }, ["sdk", "truffle", "vm"]), self.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'gate') + graal_common.deps.sulong + { environment+: { DYNAMIC_IMPORTS: '/tools,/substratevm,/sulong', From 4dfe8925719d4388db81f3513dc19facc920ebe5 Mon Sep 17 00:00:00 2001 From: Danilo Ansaloni Date: Thu, 14 Aug 2025 16:02:59 +0200 Subject: [PATCH 2/6] Delete maven deploy dry-run jobs. --- vm/ci/ci_includes/vm.jsonnet | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/vm/ci/ci_includes/vm.jsonnet b/vm/ci/ci_includes/vm.jsonnet index 0f89f4c16f9f..7b48fda99a33 100644 --- a/vm/ci/ci_includes/vm.jsonnet +++ b/vm/ci/ci_includes/vm.jsonnet @@ -100,27 +100,18 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; }, # Linux/AMD64 - vm_common.graalvm_complete_build_deps('ce', 'linux', 'amd64', java_version='latest') + vm_common.linux_deploy + vm_common.vm_base('linux', 'amd64', 'gate') + vm_common.maven_deploy_base_functions.base_object('linux', 'amd64', dry_run=true, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local', other_platforms=['linux-aarch64', 'darwin-aarch64', 'windows-amd64']) + { - name: 'gate-vm-maven-dry-run-linux-amd64', - timelimit: '1:00:00', - }, vm_common.graalvm_complete_build_deps('ce', 'linux', 'amd64', java_version='latest') + vm_common.linux_deploy + vm_common.vm_base('linux', 'amd64', 'daily', deploy=true) + vm_common.maven_deploy_base_functions.base_object('linux', 'amd64', dry_run=false, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { name: 'daily-deploy-vm-maven-linux-amd64', timelimit: '1:00:00', notify_groups:: ['deploy'], }, # Linux/AARCH64 - vm_common.graalvm_complete_build_deps('ce', 'linux', 'aarch64', java_version='latest') + vm_common.linux_deploy + vm_common.vm_base('linux', 'aarch64', 'gate') + vm_common.maven_deploy_base_functions.base_object('linux', 'aarch64', dry_run=true, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { - name: 'gate-vm-maven-dry-run-linux-aarch64', - timelimit: '1:00:00', - }, vm_common.graalvm_complete_build_deps('ce', 'linux', 'aarch64', java_version='latest') + vm_common.linux_deploy + vm_common.vm_base('linux', 'aarch64', 'daily', deploy=true) + vm_common.maven_deploy_base_functions.base_object('linux', 'aarch64', dry_run=false, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { name: 'daily-deploy-vm-maven-linux-aarch64', timelimit: '1:00:00', notify_groups:: ['deploy'], }, # Darwin/AMD64 - # We do not have a gate that executes a dry-run of Maven deployment for darwin/amd64. We just rely on the daily job defined below. vm_common.graalvm_complete_build_deps('ce', 'darwin', 'amd64', java_version='latest') + vm_common.darwin_deploy + vm_common.vm_base('darwin', 'amd64', 'daily', deploy=true, jdk_hint='Latest') + vm_common.maven_deploy_base_functions.base_object('darwin', 'amd64', dry_run=false, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { name: 'daily-deploy-vm-maven-darwin-amd64', capabilities+: ['darwin_bigsur'], @@ -128,11 +119,6 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; notify_groups:: ['deploy'], }, # Darwin/AARCH64 - vm_common.graalvm_complete_build_deps('ce', 'darwin', 'aarch64', java_version='latest') + vm_common.darwin_deploy + vm_common.vm_base('darwin', 'aarch64', 'gate') + vm_common.maven_deploy_base_functions.base_object('darwin', 'aarch64', dry_run=true, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { - name: 'gate-vm-maven-dry-run-darwin-aarch64', - capabilities+: ['darwin_bigsur'], - timelimit: '1:00:00', - }, vm_common.graalvm_complete_build_deps('ce', 'darwin', 'aarch64', java_version='latest') + vm_common.darwin_deploy + vm_common.vm_base('darwin', 'aarch64', 'daily', deploy=true) + vm_common.maven_deploy_base_functions.base_object('darwin', 'aarch64', dry_run=false, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { name: 'daily-deploy-vm-maven-darwin-aarch64', capabilities+: ['darwin_bigsur'], @@ -140,10 +126,6 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; notify_groups:: ['deploy'], }, # Windows/AMD64 - vm_common.graalvm_complete_build_deps('ce', 'windows', 'amd64', java_version='latest') + vm_common.deploy_build + vm_common.vm_base('windows', 'amd64', 'gate') + vm_common.maven_deploy_base_functions.base_object('windows', 'amd64', dry_run=true, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { - name: 'gate-vm-maven-dry-run-windows-amd64', - timelimit: '1:00:00', - }, vm_common.graalvm_complete_build_deps('ce', 'windows', 'amd64', java_version='latest') + vm_common.deploy_build + vm_common.vm_base('windows', 'amd64', 'daily', deploy=true, jdk_hint='Latest') + vm_common.maven_deploy_base_functions.base_object('windows', 'amd64', dry_run=false, remote_mvn_repo=$.maven_deploy_repository, remote_non_mvn_repo=$.binaries_repository, local_repo='local') + { name: 'daily-deploy-vm-maven-windows-amd64', timelimit: '1:00:00', From 779f9175bc91a22e7cae869901632ff5ad9d6926 Mon Sep 17 00:00:00 2001 From: Danilo Ansaloni Date: Thu, 14 Aug 2025 16:09:15 +0200 Subject: [PATCH 3/6] Run vm style checks in tier1. --- vm/ci/ci_common/common.jsonnet | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vm/ci/ci_common/common.jsonnet b/vm/ci/ci_common/common.jsonnet index c580010412ac..00bb2d32efa7 100644 --- a/vm/ci/ci_common/common.jsonnet +++ b/vm/ci/ci_common/common.jsonnet @@ -577,7 +577,7 @@ local devkits = graal_common.devkits; # # Gates # - vm.vm_java_Latest + graal_common.deps.eclipse + graal_common.deps.jdt + graal_common.deps.spotbugs + self.vm_base('linux', 'amd64', 'gate') + galahad.exclude + { + vm.vm_java_Latest + graal_common.deps.eclipse + graal_common.deps.jdt + graal_common.deps.spotbugs + self.vm_base('linux', 'amd64', 'tier1') + galahad.exclude + { run: [ ['mx', 'gate', '-B=--force-deprecation-as-warning', '--tags', 'style,fullbuild'], ], From 47594e2ae1756483bba146e33a97c999a405cd0f Mon Sep 17 00:00:00 2001 From: Danilo Ansaloni Date: Thu, 14 Aug 2025 16:09:22 +0200 Subject: [PATCH 4/6] Update CI overlay. --- graal-common.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/graal-common.json b/graal-common.json index ff531355ef01..fd828c1ab605 100644 --- a/graal-common.json +++ b/graal-common.json @@ -1,6 +1,6 @@ { "README": "This file contains definitions that are useful for the jsonnet CI files of the graal and graal-enterprise repositories.", "ci": { - "overlay": "a661d2fe42f118faf07caa881ced6566201e068c" + "overlay": "2f0084a8ab476f991f50132e1879a925efb0d596" } } From 55887f9d3f16e8be3b8ceae6cac3fcb60f9feb8e Mon Sep 17 00:00:00 2001 From: Danilo Ansaloni Date: Thu, 14 Aug 2025 16:10:05 +0200 Subject: [PATCH 5/6] Move remaining gates not associated to a tier to post-merge. --- tools/ci/ci.jsonnet | 18 ++++++++++-------- vm/ci/ci_includes/vm-native.jsonnet | 11 ++++++----- vm/ci/ci_includes/vm.jsonnet | 5 +++-- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/tools/ci/ci.jsonnet b/tools/ci/ci.jsonnet index fa3e96448120..d8b50d0d4cdc 100644 --- a/tools/ci/ci.jsonnet +++ b/tools/ci/ci.jsonnet @@ -22,13 +22,14 @@ } }, - local tools_gate = gate_guard + tools_common + common.deps.eclipse + common.deps.jdt + common.deps.spotbugs + { - name: 'gate-tools-oracle' + self.jdk_name + '-' + self.os + '-' + self.arch, + local tools_post_merge = gate_guard + tools_common + common.deps.eclipse + common.deps.jdt + common.deps.spotbugs + { + name: 'post-merge-tools-oracle' + self.jdk_name + '-' + self.os + '-' + self.arch, run: [["mx", "--strict-compliance", "gate", "--strict-mode"]], - targets: ["gate"], + targets: ["post-merge"], guard+: { includes+: ["**.jsonnet"], - } + }, + notify_groups:: ["tools"], }, local tools_weekly = tools_common + { @@ -43,12 +44,13 @@ }, local tools_javadoc = tools_common + common_guard + { - name: "gate-tools-javadoc-" + self.jdk_name, + name: "post-merge-tools-javadoc-" + self.jdk_name, run: [ ["mx", "build"], ["mx", "javadoc"], ], - targets: ["gate"] + targets: ["post-merge"], + notify_groups:: ["tools"], }, local coverage_whitelisting = [ @@ -82,8 +84,8 @@ }, local _builds = [ - common.linux_amd64 + common.oraclejdkLatest + tools_gate, - common.linux_amd64 + common.oraclejdk21 + tools_gate, + common.linux_amd64 + common.oraclejdkLatest + tools_post_merge, + common.linux_amd64 + common.oraclejdk21 + tools_post_merge, common.linux_amd64 + common.oraclejdkLatest + tools_javadoc, common.linux_amd64 + common.oraclejdk21 + tools_coverage_weekly, diff --git a/vm/ci/ci_includes/vm-native.jsonnet b/vm/ci/ci_includes/vm-native.jsonnet index 586587c24fdd..a38a896272e2 100644 --- a/vm/ci/ci_includes/vm-native.jsonnet +++ b/vm/ci/ci_includes/vm-native.jsonnet @@ -41,16 +41,17 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; }, local builds = [ - vm.vm_java_Latest + graal_common.deps.svm + graal_common.deps.sulong + graal_common.deps.graalpy + vm.custom_vm + vm_common.vm_base('linux', 'amd64', 'gate') + { + vm.vm_java_Latest + graal_common.deps.svm + graal_common.deps.sulong + graal_common.deps.graalpy + vm.custom_vm + vm_common.vm_base('linux', 'amd64', 'post-merge') + { run+: [ ['mx', '--env', vm.edition, '--native-images=true', '--dy', 'graalpython', 'gate', '-B--targets=GRAALPY_NATIVE_STANDALONE', '--no-warning-as-error', '--tags', 'build,python'], ], + notify_groups: ["python"], timelimit: '45:00', - name: 'gate-vm-native-graalpython-linux-amd64', + name: 'post-merge-vm-native-graalpython-linux-amd64', }, - vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'gate') + truffle_native_tck, - vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'gate') + truffle_native_tck_wasm, - vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'gate') + truffle_maven_downloader, + vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'post-merge') + truffle_native_tck, + vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'post-merge') + truffle_native_tck_wasm, + vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'post-merge') + truffle_maven_downloader, ], builds: utils.add_defined_in(builds, std.thisFile), diff --git a/vm/ci/ci_includes/vm.jsonnet b/vm/ci/ci_includes/vm.jsonnet index 7b48fda99a33..37d1ebd6a458 100644 --- a/vm/ci/ci_includes/vm.jsonnet +++ b/vm/ci/ci_includes/vm.jsonnet @@ -86,7 +86,7 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; }, local builds = [ - self.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'gate') + graal_common.deps.sulong + { + self.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'post-merge') + graal_common.deps.sulong + { environment+: { DYNAMIC_IMPORTS: '/tools,/substratevm,/sulong', NATIVE_IMAGES: 'polyglot', @@ -95,8 +95,9 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; ['rm', '-rf', '../.git'], ['mx', 'gate', '--strict-mode', '--tags', 'build'], ], - name: 'gate-vm-build-without-vcs-linux-amd64', + name: 'post-merge-vm-build-without-vcs-linux-amd64', timelimit: '30:00', + notify_groups:: ['deploy'], }, # Linux/AMD64 From 94bfd03c617383385f01d98c9ce05bddc71840f8 Mon Sep 17 00:00:00 2001 From: Danilo Ansaloni Date: Fri, 15 Aug 2025 14:25:24 +0200 Subject: [PATCH 6/6] Assign Truffle jobs to a tier. --- tools/ci/ci.jsonnet | 14 +++++++------- vm/ci/ci_includes/vm-native.jsonnet | 16 ++++++++-------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/ci/ci.jsonnet b/tools/ci/ci.jsonnet index d8b50d0d4cdc..c83abeed7e13 100644 --- a/tools/ci/ci.jsonnet +++ b/tools/ci/ci.jsonnet @@ -22,10 +22,10 @@ } }, - local tools_post_merge = gate_guard + tools_common + common.deps.eclipse + common.deps.jdt + common.deps.spotbugs + { - name: 'post-merge-tools-oracle' + self.jdk_name + '-' + self.os + '-' + self.arch, + local tools_gate = gate_guard + tools_common + common.deps.eclipse + common.deps.jdt + common.deps.spotbugs + { + name: 'gate-tools-oracle' + self.jdk_name + '-' + self.os + '-' + self.arch, run: [["mx", "--strict-compliance", "gate", "--strict-mode"]], - targets: ["post-merge"], + targets: [if (self.jdk_name == "jdk-latest") then "tier2" else "tier3"], guard+: { includes+: ["**.jsonnet"], }, @@ -44,12 +44,12 @@ }, local tools_javadoc = tools_common + common_guard + { - name: "post-merge-tools-javadoc-" + self.jdk_name, + name: "gate-tools-javadoc-" + self.jdk_name, run: [ ["mx", "build"], ["mx", "javadoc"], ], - targets: ["post-merge"], + targets: ["tier1"], notify_groups:: ["tools"], }, @@ -84,8 +84,8 @@ }, local _builds = [ - common.linux_amd64 + common.oraclejdkLatest + tools_post_merge, - common.linux_amd64 + common.oraclejdk21 + tools_post_merge, + common.linux_amd64 + common.oraclejdkLatest + tools_gate, + common.linux_amd64 + common.oraclejdk21 + tools_gate, common.linux_amd64 + common.oraclejdkLatest + tools_javadoc, common.linux_amd64 + common.oraclejdk21 + tools_coverage_weekly, diff --git a/vm/ci/ci_includes/vm-native.jsonnet b/vm/ci/ci_includes/vm-native.jsonnet index a38a896272e2..4160c12569e3 100644 --- a/vm/ci/ci_includes/vm-native.jsonnet +++ b/vm/ci/ci_includes/vm-native.jsonnet @@ -11,7 +11,7 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; notify_groups: ["truffle"], components+: ["truffletck"], timelimit: '35:00', - name: self.targets[0] + '-vm-truffle-native-tck-labs' + self.jdk_name + '-linux-amd64', + name: 'gate-vm-truffle-native-tck-labs' + self.jdk_name + '-linux-amd64', logs+: [ "*/call_tree.txt.gz" ] @@ -24,7 +24,7 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; notify_groups: ["wasm"], components+: ["truffletck"], timelimit: '35:00', - name: self.targets[0] + '-vm-truffle-native-tck-wasm-labs' + self.jdk_name + '-linux-amd64', + name: 'gate-vm-truffle-native-tck-wasm-labs' + self.jdk_name + '-linux-amd64', }, local truffle_maven_downloader = graal_common.deps.svm + graal_common.deps.sulong + { @@ -37,21 +37,21 @@ local graal_common = import '../../../ci/ci_common/common.jsonnet'; packages+: { maven: '==3.5.3', }, - name: self.targets[0] + '-vm-ce-truffle-maven-downloader-labs' + self.jdk_name + '-linux-amd64', + name: 'gate-vm-ce-truffle-maven-downloader-labs' + self.jdk_name + '-linux-amd64', }, local builds = [ - vm.vm_java_Latest + graal_common.deps.svm + graal_common.deps.sulong + graal_common.deps.graalpy + vm.custom_vm + vm_common.vm_base('linux', 'amd64', 'post-merge') + { + vm.vm_java_Latest + graal_common.deps.svm + graal_common.deps.sulong + graal_common.deps.graalpy + vm.custom_vm + vm_common.vm_base('linux', 'amd64', 'tier3') + { run+: [ ['mx', '--env', vm.edition, '--native-images=true', '--dy', 'graalpython', 'gate', '-B--targets=GRAALPY_NATIVE_STANDALONE', '--no-warning-as-error', '--tags', 'build,python'], ], notify_groups: ["python"], timelimit: '45:00', - name: 'post-merge-vm-native-graalpython-linux-amd64', + name: 'gate-vm-native-graalpython-linux-amd64', }, - vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'post-merge') + truffle_native_tck, - vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'post-merge') + truffle_native_tck_wasm, - vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'post-merge') + truffle_maven_downloader, + vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'tier3') + truffle_native_tck, + vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'tier3') + truffle_native_tck_wasm, + vm.vm_java_Latest + vm_common.vm_base('linux', 'amd64', 'tier3') + truffle_maven_downloader, ], builds: utils.add_defined_in(builds, std.thisFile),