33// Jenkins pipeline
44// See documents at https://jenkins.io/doc/book/pipeline/jenkinsfile/
55
6+ // Docker env used for testing
7+ // Different image may have different version tag
8+ // because some of them are more stable than anoter.
9+ //
10+ // Docker images are maintained by PMC, cached in dockerhub
11+ // and remains relatively stable over the time.
12+ // Flow for upgrading docker env(need commiter)
13+ //
14+ // - Send PR to upgrade build script in the repo
15+ // - Build the new docker image
16+ // - Tag the docker image with a new version and push to tvmai
17+ // - Update the version in the Jenkinsfile, send a PR
18+ // - Fix any issues wrt to the new image version in the PR
19+ // - Merge the PR and now we are in new version
20+ // - Tag the new version as the lates
21+ // - Periodically cleanup the old versions on local workers
22+ //
23+ ci_lint = " tvmai/ci-lint:v0.50"
24+ ci_gpu = " tvmai/ci-gpu:v0.50"
25+ ci_cpu = " tvmai/ci-cpu:v0.41"
26+ ci_i386 = " tvmai/ci-i386:v0.50"
27+
628// tvm libraries
729tvm_runtime = " build/libtvm_runtime.so, build/config.cmake"
830tvm_lib = " build/libtvm.so, " + tvm_runtime
@@ -39,7 +61,7 @@ stage("Sanity Check") {
3961 node(' CPU' ) {
4062 ws(' workspace/tvm/sanity' ) {
4163 init_git()
42- sh " ${ docker_run} tvmai/ci-lint ./tests/scripts/task_lint.sh"
64+ sh " ${ docker_run} ${ ci_lint } ./tests/scripts/task_lint.sh"
4365 }
4466 }
4567 }
@@ -102,7 +124,7 @@ stage('Build') {
102124 echo set\\ (CMAKE_CXX_COMPILER g++\\ ) >> config.cmake
103125 echo set\\ (CMAKE_CXX_FLAGS -Werror\\ ) >> config.cmake
104126 """
105- make(' tvmai/ci-gpu ' , ' build' , ' -j4' )
127+ make(ci_gpu , ' build' , ' -j4' )
106128 pack_lib(' gpu' , tvm_multilib)
107129 // compiler test
108130 sh """
@@ -116,7 +138,7 @@ stage('Build') {
116138 echo set\\ (CMAKE_CXX_COMPILER clang-6.0\\ ) >> config.cmake
117139 echo set\\ (CMAKE_CXX_FLAGS -Werror\\ ) >> config.cmake
118140 """
119- make(' tvmai/ci-gpu ' , ' build2' , ' -j4' )
141+ make(ci_gpu , ' build2' , ' -j4' )
120142 }
121143 }
122144 },
@@ -136,14 +158,15 @@ stage('Build') {
136158 echo set\\ (CMAKE_CXX_COMPILER g++\\ ) >> config.cmake
137159 echo set\\ (CMAKE_CXX_FLAGS -Werror\\ ) >> config.cmake
138160 """
139- make(' tvmai/ci-cpu ' , ' build' , ' -j4' )
161+ make(ci_cpu , ' build' , ' -j4' )
140162 pack_lib(' cpu' , tvm_lib)
141163 timeout(time : max_time, unit : ' MINUTES' ) {
142- sh " ${ docker_run} tvmai/ci-cpu ./tests/scripts/task_cpp_unittest.sh"
143- sh " ${ docker_run} tvmai/ci-cpu ./tests/scripts/task_python_vta.sh"
144- sh " ${ docker_run} tvmai/ci-cpu ./tests/scripts/task_golang.sh"
145- sh " ${ docker_run} tvmai/ci-cpu ./tests/scripts/task_python_unittest.sh"
146- sh " ${ docker_run} tvmai/ci-cpu ./tests/scripts/task_python_integration.sh"
164+ sh " ${ docker_run} ${ ci_cpu} ./tests/scripts/task_cpp_unittest.sh"
165+ sh " ${ docker_run} ${ ci_cpu} ./tests/scripts/task_python_vta.sh"
166+ sh " ${ docker_run} ${ ci_cpu} ./tests/scripts/task_rust.sh"
167+ sh " ${ docker_run} ${ ci_cpu} ./tests/scripts/task_golang.sh"
168+ sh " ${ docker_run} ${ ci_cpu} ./tests/scripts/task_python_unittest.sh"
169+ sh " ${ docker_run} ${ ci_cpu} ./tests/scripts/task_python_integration.sh"
147170 }
148171 }
149172 }
@@ -163,7 +186,7 @@ stage('Build') {
163186 echo set\\ (CMAKE_CXX_COMPILER g++\\ ) >> config.cmake
164187 echo set\\ (CMAKE_CXX_FLAGS -Werror\\ ) >> config.cmake
165188 """
166- make(' tvmai/ci-i386 ' , ' build' , ' -j4' )
189+ make(ci_i386 , ' build' , ' -j4' )
167190 pack_lib(' i386' , tvm_multilib)
168191 }
169192 }
@@ -177,8 +200,8 @@ stage('Unit Test') {
177200 init_git()
178201 unpack_lib(' gpu' , tvm_multilib)
179202 timeout(time : max_time, unit : ' MINUTES' ) {
180- sh " ${ docker_run} tvmai/ci-gpu ./tests/scripts/task_python_unittest.sh"
181- sh " ${ docker_run} tvmai/ci-gpu ./tests/scripts/task_python_integration.sh"
203+ sh " ${ docker_run} ${ ci_gpu } ./tests/scripts/task_python_unittest.sh"
204+ sh " ${ docker_run} ${ ci_gpu } ./tests/scripts/task_python_integration.sh"
182205 }
183206 }
184207 }
@@ -189,9 +212,9 @@ stage('Unit Test') {
189212 init_git()
190213 unpack_lib(' i386' , tvm_multilib)
191214 timeout(time : max_time, unit : ' MINUTES' ) {
192- sh " ${ docker_run} tvmai/ci-i386 ./tests/scripts/task_python_unittest.sh"
193- sh " ${ docker_run} tvmai/ci-i386 ./tests/scripts/task_python_integration.sh"
194- sh " ${ docker_run} tvmai/ci-i386 ./tests/scripts/task_python_vta.sh"
215+ sh " ${ docker_run} ${ ci_i386 } ./tests/scripts/task_python_unittest.sh"
216+ sh " ${ docker_run} ${ ci_i386 } ./tests/scripts/task_python_integration.sh"
217+ sh " ${ docker_run} ${ ci_i386 } ./tests/scripts/task_python_vta.sh"
195218 }
196219 }
197220 }
@@ -202,7 +225,7 @@ stage('Unit Test') {
202225 init_git()
203226 unpack_lib(' gpu' , tvm_multilib)
204227 timeout(time : max_time, unit : ' MINUTES' ) {
205- sh " ${ docker_run} tvmai/ci-gpu ./tests/scripts/task_java_unittest.sh"
228+ sh " ${ docker_run} ${ ci_gpu } ./tests/scripts/task_java_unittest.sh"
206229 }
207230 }
208231 }
@@ -216,7 +239,7 @@ stage('Integration Test') {
216239 init_git()
217240 unpack_lib(' gpu' , tvm_multilib)
218241 timeout(time : max_time, unit : ' MINUTES' ) {
219- sh " ${ docker_run} tvmai/ci-gpu ./tests/scripts/task_python_topi.sh"
242+ sh " ${ docker_run} ${ ci_gpu } ./tests/scripts/task_python_topi.sh"
220243 }
221244 }
222245 }
@@ -227,7 +250,7 @@ stage('Integration Test') {
227250 init_git()
228251 unpack_lib(' gpu' , tvm_multilib)
229252 timeout(time : max_time, unit : ' MINUTES' ) {
230- sh " ${ docker_run} tvmai/ci-gpu ./tests/scripts/task_python_frontend.sh"
253+ sh " ${ docker_run} ${ ci_gpu } ./tests/scripts/task_python_frontend.sh"
231254 }
232255 }
233256 }
@@ -238,7 +261,7 @@ stage('Integration Test') {
238261 init_git()
239262 unpack_lib(' gpu' , tvm_multilib)
240263 timeout(time : max_time, unit : ' MINUTES' ) {
241- sh " ${ docker_run} tvmai/ci-gpu ./tests/scripts/task_python_docs.sh"
264+ sh " ${ docker_run} ${ ci_gpu } ./tests/scripts/task_python_docs.sh"
242265 }
243266 pack_lib(' mydocs' , ' docs.tgz' )
244267 }
0 commit comments