This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch jenkins-wheel-test-artifacts
in repository https://gitbox.apache.org/repos/asf/tvm.git

commit c9db658e7d9987279e899755fc0ecec0a5b58ef5
Merge: 5bb9f9d791 a1490e3f25
Author: Tianqi Chen <[email protected]>
AuthorDate: Thu Oct 15 11:55:13 2026 +0000

    Merge explicit Jenkins node and artifact helpers into wheel pipelines

 ci/jenkins/README.md                         |  16 +-
 ci/jenkins/generated/arm_jenkinsfile.groovy  |  18 +-
 ci/jenkins/generated/common.groovy           |  36 +++
 ci/jenkins/generated/cpu_jenkinsfile.groovy  |  25 ++-
 ci/jenkins/generated/gpu_jenkinsfile.groovy  |  40 ++--
 ci/jenkins/generated/wasm_jenkinsfile.groovy |  24 +-
 tests/python/ci/jenkins_loader_test.groovy   |  84 -------
 tests/python/ci/sample_prs/pr10786.json      | 130 -----------
 tests/python/ci/test_ci.py                   |  55 ++++-
 tests/python/ci/test_jenkins_helpers.py      | 318 ---------------------------
 tests/python/ci/test_jenkins_loader.py       |  37 ----
 tests/python/ci/test_tvmbot.py               | 106 +++++++--
 tests/python/ci/test_utils.py                |  80 -------
 13 files changed, 260 insertions(+), 709 deletions(-)

diff --cc ci/jenkins/generated/arm_jenkinsfile.groovy
index b376794a3c,c826e2d104..2c1db5d936
--- a/ci/jenkins/generated/arm_jenkinsfile.groovy
+++ b/ci/jenkins/generated/arm_jenkinsfile.groovy
@@@ -19,13 -19,16 +19,17 @@@
  ci = evaluate(readTrusted('ci/jenkins/generated/common.groovy'))
  ci.start()
  
 +docker_run += ' --env TVM_TEST_USE_WHEEL=1'
 +
- ci.build('ARM-GRAVITON3', 'BUILD: arm', 'tvm/build-arm', images.ci_arm, 
'arm') {
-   sh(
-     script: "${docker_run} ${images.ci_arm} 
./tests/scripts/task_config_build_arm.sh build",
-     label: 'Create ARM CMake config',
-   )
-   ci.wheel_build(images.ci_arm, true)
-   ci.upload('arm', '--artifacts wheels')
+ stage('Build') {
+   ci.with_node(instance: 'ARM-GRAVITON3-SPOT', retry_instance: 
'ARM-GRAVITON3',
+     name: 'BUILD: arm', folder: 'tvm/build-arm', variables: ['PLATFORM=arm']) 
{
+     ci.docker_init(images.ci_arm)
+     sh(
+       script: "${docker_run} ${images.ci_arm} 
./tests/scripts/task_config_build_arm.sh build",
+       label: 'Create ARM CMake config',
+     )
 -    ci.cmake_build(images.ci_arm, 'build')
 -    ci.make_cpp_tests(images.ci_arm, 'build')
 -    ci.upload_artifacts('arm', '--artifacts tvm_lib --artifacts cpptest')
++    ci.wheel_build(images.ci_arm, true)
++    ci.upload_artifacts('arm', '--artifacts wheels')
+   }
  }
diff --cc ci/jenkins/generated/cpu_jenkinsfile.groovy
index 72ed6e4e6f,edadf43273..8be385ac42
--- a/ci/jenkins/generated/cpu_jenkinsfile.groovy
+++ b/ci/jenkins/generated/cpu_jenkinsfile.groovy
@@@ -19,22 -19,29 +19,29 @@@
  ci = evaluate(readTrusted('ci/jenkins/generated/common.groovy'))
  ci.start()
  
 +docker_run += ' --env TVM_TEST_USE_WHEEL=1'
 +
- ci.build('CPU', 'BUILD: CPU', 'tvm/build-cpu', images.ci_cpu, 'cpu') {
-   sh(
-     script: "${docker_run} ${images.ci_cpu} 
./tests/scripts/task_config_build_cpu.sh build",
-     label: 'Create CPU CMake config',
-   )
-   ci.wheel_build(images.ci_cpu, true)
-   ci.upload('cpu', '--artifacts wheels')
+ stage('Build') {
+   ci.with_node(instance: 'CPU-SPOT', retry_instance: 'CPU',
+     name: 'BUILD: CPU', folder: 'tvm/build-cpu', variables: ['PLATFORM=cpu']) 
{
+     ci.docker_init(images.ci_cpu)
+     sh(
+       script: "${docker_run} ${images.ci_cpu} 
./tests/scripts/task_config_build_cpu.sh build",
+       label: 'Create CPU CMake config',
+     )
 -    ci.cmake_build(images.ci_cpu, 'build')
 -    ci.make_cpp_tests(images.ci_cpu, 'build')
 -    ci.upload_artifacts('cpu', '--artifacts tvm_lib --artifacts cpptest')
++    ci.wheel_build(images.ci_cpu, true)
++    ci.upload_artifacts('cpu', '--artifacts wheels')
+   }
  }
  
  stage('Test') {
    parallel('unittest: CPU': {
-     ci.test('CPU', 'unittest: CPU', 'tvm/ut-python-cpu', images.ci_cpu, 
'cpu') {
+     ci.with_node(instance: 'CPU-SPOT', retry_instance: 'CPU',
+       name: 'unittest: CPU', folder: 'tvm/ut-python-cpu',
+       variables: ['PLATFORM=cpu', 'TEST_STEP_NAME=unittest: CPU']) {
+       ci.docker_init(images.ci_cpu)
        ci.download('cpu')
 -      ci.cpp_unittest(images.ci_cpu)
--      ci.python_unittest(images.ci_cpu)
++        ci.python_unittest(images.ci_cpu)
      }
    })
  }
diff --cc ci/jenkins/generated/gpu_jenkinsfile.groovy
index b5afbe0b42,668c0dadd2..7f2be47292
--- a/ci/jenkins/generated/gpu_jenkinsfile.groovy
+++ b/ci/jenkins/generated/gpu_jenkinsfile.groovy
@@@ -19,21 -19,19 +19,25 @@@
  ci = evaluate(readTrusted('ci/jenkins/generated/common.groovy'))
  ci.start()
  
 +docker_run += ' --env TVM_TEST_USE_WHEEL=1'
 +
- ci.build('CPU', 'BUILD: GPU', 'tvm/build-gpu', images.ci_gpu, 'gpu') {
-   sh "${docker_run} --no-gpu ${images.ci_gpu} 
./tests/scripts/task_config_build_gpu.sh build"
-   ci.wheel_build("--no-gpu ${images.ci_gpu}")
-   ci.upload('gpu', '--artifacts wheels --artifacts jvm_runtime')
+ stage('Build') {
+   ci.with_node(instance: 'CPU-SPOT', retry_instance: 'CPU',
+     name: 'BUILD: GPU', folder: 'tvm/build-gpu', variables: ['PLATFORM=gpu']) 
{
+     ci.docker_init(images.ci_gpu)
+     sh "${docker_run} --no-gpu ${images.ci_gpu} 
./tests/scripts/task_config_build_gpu.sh build"
 -    ci.cmake_build("${images.ci_gpu} --no-gpu", 'build')
 -    ci.upload_artifacts('gpu', '--artifacts tvm_lib --artifacts 
tvm_lib_gpu_extra')
++    ci.wheel_build("--no-gpu ${images.ci_gpu}")
++    ci.upload_artifacts('gpu', '--artifacts wheels --artifacts jvm_runtime')
  
-   // Check the compiler-only GPU configuration after publishing the test 
build.
-   sh 'rm -rf build'
-   sh "${docker_run} --no-gpu ${images.ci_gpu} 
./tests/scripts/task_config_build_gpu_other.sh build"
-   def commands = ci.build_environment() + '''
-     cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo
-     cmake --build build --target tvm_runtime
-   '''
-   sh(ci.build_docker() + "--no-gpu ${images.ci_gpu} bash -c '${commands}'")
+     // Check the compiler-only GPU configuration after publishing the test 
build.
+     sh 'rm -rf build'
+     sh "${docker_run} --no-gpu ${images.ci_gpu} 
./tests/scripts/task_config_build_gpu_other.sh build"
 -    sh "${docker_run} --env CI_NUM_EXECUTORS ${images.ci_gpu} --no-gpu 
./tests/scripts/task_build.py --sccache-bucket tvm-sccache-prod 
--sccache-region us-west-2 --cmake-target tvm_runtime --build-dir build"
++    def commands = ci.build_environment() + '''
++      cmake -S . -B build -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo
++      cmake --build build --target tvm_runtime
++    '''
++    sh(ci.build_docker() + "--no-gpu ${images.ci_gpu} bash -c '${commands}'")
+   }
  }
  
  stage('Test') {
diff --cc ci/jenkins/generated/wasm_jenkinsfile.groovy
index f514772dda,da38b1c237..7b67ee4d99
--- a/ci/jenkins/generated/wasm_jenkinsfile.groovy
+++ b/ci/jenkins/generated/wasm_jenkinsfile.groovy
@@@ -19,16 -19,20 +19,20 @@@
  ci = evaluate(readTrusted('ci/jenkins/generated/common.groovy'))
  ci.start()
  
 +docker_run += ' --env TVM_TEST_USE_WHEEL=1'
 +
- ci.build('CPU', 'BUILD: WASM', 'tvm/build-wasm', images.ci_wasm, 'wasm') {
-   sh(
-     script: "${docker_run} ${images.ci_wasm} 
./tests/scripts/task_config_build_wasm.sh build",
-     label: 'Create WASM CMake config',
-   )
-   ci.wheel_build(images.ci_wasm, true)
-   sh(
-     script: "${docker_run} ${images.ci_wasm} 
./tests/scripts/task_web_wasm.sh",
-     label: 'Run WASM lint and tests',
-   )
+ stage('Build') {
+   ci.with_node(instance: 'CPU-SPOT', retry_instance: 'CPU',
+     name: 'BUILD: WASM', folder: 'tvm/build-wasm', variables: 
['PLATFORM=wasm']) {
+     ci.docker_init(images.ci_wasm)
+     sh(
+       script: "${docker_run} ${images.ci_wasm} 
./tests/scripts/task_config_build_wasm.sh build",
+       label: 'Create WASM CMake config',
+     )
 -    ci.cmake_build(images.ci_wasm, 'build')
 -    ci.make_cpp_tests(images.ci_wasm, 'build')
 -    ci.cpp_unittest(images.ci_wasm)
++    ci.wheel_build(images.ci_wasm, true)
+     sh(
+       script: "${docker_run} ${images.ci_wasm} 
./tests/scripts/task_web_wasm.sh",
+       label: 'Run WASM lint and tests',
+     )
+   }
  }

Reply via email to