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', + ) + } }
