Jenkinsfile 14.4 KB
Newer Older
L
liuyq-617 已提交
1
import hudson.model.Result
2
import hudson.model.*;
L
liuyq-617 已提交
3
import jenkins.model.CauseOfInterruption
4 5 6
node {
}

L
liuyq-617 已提交
7
def skipbuild=0
8
def win_stop=0
L
liuyq-617 已提交
9

L
recover  
liuyq-617 已提交
10 11 12 13 14
def abortPreviousBuilds() {
  def currentJobName = env.JOB_NAME
  def currentBuildNumber = env.BUILD_NUMBER.toInteger()
  def jobs = Jenkins.instance.getItemByFullName(currentJobName)
  def builds = jobs.getBuilds()
15

L
recover  
liuyq-617 已提交
16 17 18 19
  for (build in builds) {
    if (!build.isBuilding()) {
      continue;
    }
L
liuyq-617 已提交
20

L
recover  
liuyq-617 已提交
21 22 23 24 25 26 27 28 29 30 31 32 33 34
    if (currentBuildNumber == build.getNumber().toInteger()) {
      continue;
    }

    build.doKill()    //doTerm(),doKill(),doTerm()
  }
}
//  abort previous build
abortPreviousBuilds()
def abort_previous(){
  def buildNumber = env.BUILD_NUMBER as int
  if (buildNumber > 1) milestone(buildNumber - 1)
  milestone(buildNumber)
}
35
def pre_test(){
L
liuyq-617 已提交
36
    sh'hostname'
L
liuyq-617 已提交
37 38 39
    sh '''
    sudo rmtaos || echo "taosd has not installed"
    '''
L
liuyq-617 已提交
40
    sh '''
L
fix  
liuyq-617 已提交
41 42
    killall -9 taosd ||echo "no taosd running"
    killall -9 gdb || echo "no gdb running"
L
liuyq-617 已提交
43
    killall -9 python3.8 || echo "no python program running"
L
liuyq-617 已提交
44
    cd ${WORKSPACE}
L
fix  
liuyq-617 已提交
45 46 47 48
    git reset --hard HEAD~10 >/dev/null
    '''
    script {
      if (env.CHANGE_TARGET == 'master') {
L
fix  
liuyq-617 已提交
49
        sh '''
L
liuyq-617 已提交
50
        cd ${WORKSPACE}
L
fix  
liuyq-617 已提交
51 52
        git checkout master
        '''
L
fix  
liuyq-617 已提交
53
        }
54
      else if(env.CHANGE_TARGET == '2.0'){
L
fix  
liuyq-617 已提交
55
        sh '''
L
liuyq-617 已提交
56
        cd ${WORKSPACE}
57
        git checkout 2.0
L
fix  
liuyq-617 已提交
58
        '''
L
liuyq-617 已提交
59 60 61
      }
      else if(env.CHANGE_TARGET == '3.0'){
        sh '''
L
liuyq-617 已提交
62
        cd ${WORKSPACE}
L
liuyq-617 已提交
63 64
        git checkout 3.0
        '''
L
fix  
liuyq-617 已提交
65
      } 
66 67
      else{
        sh '''
L
liuyq-617 已提交
68
        cd ${WORKSPACE}
69 70 71
        git checkout develop
        '''
      }
L
fix  
liuyq-617 已提交
72 73
    }
    sh'''
L
liuyq-617 已提交
74
    cd ${WORKSPACE}
L
liuyq-617 已提交
75
    git pull >/dev/null
L
liuyq-617 已提交
76
    git fetch origin +refs/pull/${CHANGE_ID}/merge
77
    git checkout -qf FETCH_HEAD
L
liuyq-617 已提交
78
    git clean -dfx
L
fix  
liuyq-617 已提交
79
    '''
L
liuyq-617 已提交
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108
    // script {
    //   if (env.CHANGE_TARGET == 'master') {
    //     sh '''
    //     cd ${WK}
    //     git checkout master
    //     '''
    //     }
    //   else if(env.CHANGE_TARGET == '2.0'){
    //     sh '''
    //     cd ${WK}
    //     git checkout 2.0
    //     '''
    //   } 
    //   else if(env.CHANGE_TARGET == '3.0'){
    //     sh '''
    //     cd ${WK}
    //     git checkout 3.0
    //     '''
    //   } 
    //   else{
    //     sh '''
    //     cd ${WK}
    //     git checkout develop
    //     '''
    //   } 
    // }
    // sh '''
    // cd ${WK}
    // git pull >/dev/null 
L
fix  
liuyq-617 已提交
109
    sh '''
110 111 112 113 114 115 116
    export TZ=Asia/Harbin
    date
    mkdir debug
    cd debug
    cmake .. > /dev/null
    make > /dev/null
    make install > /dev/null
L
liuyq-617 已提交
117

L
liuyq-617 已提交
118
    '''
119 120
    return 1
}
L
liuyq-617 已提交
121

Y
Yiqing Liu 已提交
122
pipeline {
L
liuyq-617 已提交
123
  agent none
124
  options { skipDefaultCheckout() } 
L
liuyq-617 已提交
125 126 127 128
  environment{
      WK = '/var/lib/jenkins/workspace/TDinternal'
      WKC= '/var/lib/jenkins/workspace/TDinternal/community'
  }
Y
Yiqing Liu 已提交
129
  stages {
L
change  
liuyq-617 已提交
130
      stage('pre_build'){
131
          agent{label 'master'}
132
          options { skipDefaultCheckout() } 
L
liuyq-617 已提交
133 134 135
          when {
              changeRequest()
          }
136
          steps {
L
change  
liuyq-617 已提交
137 138 139 140
            script{
              abort_previous()
              abortPreviousBuilds()
            }
L
liuyq-617 已提交
141
          sh'''
142
          rm -rf ${WORKSPACE}.tes
L
fix  
liuyq-617 已提交
143 144
          cp -r ${WORKSPACE} ${WORKSPACE}.tes
          cd ${WORKSPACE}.tes
L
test  
liuyq-617 已提交
145
          git fetch
146 147 148 149 150 151 152
          '''
          script {
            if (env.CHANGE_TARGET == 'master') {
              sh '''
              git checkout master
              '''
              }
L
test  
liuyq-617 已提交
153 154 155 156 157
            else if(env.CHANGE_TARGET == '2.0'){
              sh '''
              git checkout 2.0
              '''
            } 
L
liuyq-617 已提交
158 159 160 161 162
            else if(env.CHANGE_TARGET == '3.0'){
              sh '''
              git checkout 3.0
              '''
            } 
L
test  
liuyq-617 已提交
163
            else{
164 165 166 167 168 169
              sh '''
              git checkout develop
              '''
            } 
          }
          sh'''
L
liuyq-617 已提交
170
          git fetch origin +refs/pull/${CHANGE_ID}/merge
171
          git checkout -qf FETCH_HEAD
L
fix  
liuyq-617 已提交
172
          '''     
173

L
liuyq-617 已提交
174 175 176 177
          script{  
            skipbuild='2'     
            skipbuild=sh(script: "git log -2 --pretty=%B | fgrep -ie '[skip ci]' -e '[ci skip]' && echo 1 || echo 2", returnStdout:true)
            println skipbuild
178
          }
L
fix  
liuyq-617 已提交
179
          sh'''
L
liuyq-617 已提交
180
          rm -rf ${WORKSPACE}.tes
L
fix  
liuyq-617 已提交
181
          '''
182 183
          }
      }
L
change  
liuyq-617 已提交
184
      stage('Parallel test stage') {
L
liuyq-617 已提交
185
        //only build pr
186
        options { skipDefaultCheckout() } 
L
liuyq-617 已提交
187
        when {
L
liuyq-617 已提交
188
          allOf{
L
liuyq-617 已提交
189
              changeRequest()
L
liuyq-617 已提交
190 191
               expression{
                return skipbuild.trim() == '2'
192
              }
L
liuyq-617 已提交
193
            }
L
liuyq-617 已提交
194
          }
Y
Yiqing Liu 已提交
195
      parallel {
L
liuyq-617 已提交
196
        stage('python_1_s1') {
L
liuyq-617 已提交
197
          agent{label " slave1 || slave11 "}
L
liuyq-617 已提交
198
          steps {
L
liuyq-617 已提交
199
            
200
            pre_test()
L
liuyq-617 已提交
201 202 203 204 205 206 207
            // timeout(time: 55, unit: 'MINUTES'){
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh p1
            //   date'''
            // }
L
liuyq-617 已提交
208
            
L
liuyq-617 已提交
209 210
          }
        }
L
liuyq-617 已提交
211
        stage('python_2_s5') {
L
liuyq-617 已提交
212
          agent{label " slave5 || slave15 "}
L
liuyq-617 已提交
213 214 215
          steps {
            
            pre_test()
L
liuyq-617 已提交
216 217 218 219 220 221 222
            // timeout(time: 55, unit: 'MINUTES'){
            //     sh '''
            //     date
            //     cd ${WKC}/tests
            //     ./test-all.sh p2
            //     date'''
            // }
L
liuyq-617 已提交
223 224 225
          }
        }
        stage('python_3_s6') {
L
liuyq-617 已提交
226
          agent{label " slave6 || slave16 "}
L
liuyq-617 已提交
227 228 229 230 231 232 233 234 235 236
          steps {  
            pre_test()   
            // timeout(time: 55, unit: 'MINUTES'){       
              
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh p3
            //   date'''
            // }
L
liuyq-617 已提交
237 238
          }
        }
L
liuyq-617 已提交
239
        stage('test_b1_s2') {
L
liuyq-617 已提交
240
          agent{label " slave2 || slave12 "}
L
liuyq-617 已提交
241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258
          steps {   
            pre_test()  
        //     timeout(time: 55, unit: 'MINUTES'){       
              
        //       sh '''
        //         rm -rf /var/lib/taos/*
        //         rm -rf /var/log/taos/*
        //         nohup taosd >/dev/null &
        //         sleep 10
        //       '''
        //       sh '''
        //       cd ${WKC}/tests/examples/nodejs
        //       npm install td2.0-connector > /dev/null 2>&1
        //       node nodejsChecker.js host=localhost
        //       node test1970.js
	      // cd ${WKC}/tests/connectorTest/nodejsTest/nanosupport
	      // npm install td2.0-connector > /dev/null 2>&1
        //       node nanosecondTest.js
259

L
liuyq-617 已提交
260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277
        //       '''
        //       sh '''
        //         cd ${WKC}/tests/examples/C#/taosdemo
        //         mcs -out:taosdemo *.cs > /dev/null 2>&1
        //         echo '' |./taosdemo -c /etc/taos
        //         cd ${WKC}/tests/connectorTest/C#Test/nanosupport
        //         mcs -out:nano *.cs > /dev/null 2>&1
        //         echo '' |./nano
        //       '''
        //       sh '''
        //         cd ${WKC}/tests/gotest
        //         bash batchtest.sh
        //       '''
        //       sh '''
        //       cd ${WKC}/tests
        //       ./test-all.sh b1fq
        //       date'''
        //     }
Y
Yiqing Liu 已提交
278 279
          }
        }
L
liuyq-617 已提交
280
        stage('test_crash_gen_s3') {
L
liuyq-617 已提交
281
          agent{label " slave3 || slave13 "}
282
          
Y
Yiqing Liu 已提交
283
          steps {
284
            pre_test()
L
liuyq-617 已提交
285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312
            // timeout(time: 60, unit: 'MINUTES'){
            //   sh '''
            //   cd ${WKC}/tests/pytest
            //   ./crash_gen.sh -a -p -t 4 -s 2000
            //   '''
            // }
            // timeout(time: 60, unit: 'MINUTES'){
            //   // sh '''
            //   // cd ${WKC}/tests/pytest
            //   // rm -rf /var/lib/taos/*
            //   // rm -rf /var/log/taos/*
            //   // ./handle_crash_gen_val_log.sh
            //   // '''
            //   sh '''
            //   cd ${WKC}/tests/pytest
            //   rm -rf /var/lib/taos/*
            //   rm -rf /var/log/taos/*
            //   ./handle_taosd_val_log.sh
            //   '''
            // }
            // timeout(time: 55, unit: 'MINUTES'){
            //     sh '''
            //     date
            //     cd ${WKC}/tests
            //     ./test-all.sh b2fq
            //     date
            //     '''
            // }                     
Y
Yiqing Liu 已提交
313 314
          }
        }
L
liuyq-617 已提交
315
        stage('test_valgrind_s4') {
L
liuyq-617 已提交
316
          agent{label " slave4 || slave14 "}
L
liuyq-617 已提交
317

Y
Yiqing Liu 已提交
318
          steps {
319
            pre_test()
L
liuyq-617 已提交
320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338
            // catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') {
            //     sh '''
            //     cd ${WKC}/tests/pytest
            //     ./valgrind-test.sh 2>&1 > mem-error-out.log
            //     ./handle_val_log.sh
            //     '''
            // }     
            // timeout(time: 55, unit: 'MINUTES'){      
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh b3fq
            //   date'''
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh full example
            //   date'''
            // }
Y
Yiqing Liu 已提交
339 340
          }
        }
L
liuyq-617 已提交
341
        stage('test_b4_s7') {
L
liuyq-617 已提交
342
          agent{label " slave7 || slave17 "}
L
liuyq-617 已提交
343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358
          steps {  
            pre_test()   
            // timeout(time: 55, unit: 'MINUTES'){       
              
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh b4fq
            //   cd ${WKC}/tests
            //   ./test-all.sh p4
            //   cd ${WKC}/tests
            //   ./test-all.sh full jdbc
            //   cd ${WKC}/tests
            //   ./test-all.sh full unit
            //   date'''
            // }
L
liuyq-617 已提交
359 360 361
          }
        }
        stage('test_b5_s8') {
L
liuyq-617 已提交
362
          agent{label " slave8 || slave18 "}
L
liuyq-617 已提交
363 364 365 366 367 368 369 370 371 372
          steps { 
            pre_test()    
            // timeout(time: 55, unit: 'MINUTES'){       
              
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh b5fq
            //   date'''
            // }
L
liuyq-617 已提交
373 374 375
          }
        }
        stage('test_b6_s9') {
L
liuyq-617 已提交
376
          agent{label " slave9 || slave19 "}
L
liuyq-617 已提交
377 378 379 380 381 382 383 384 385 386
          steps { 
            pre_test()    
            // timeout(time: 55, unit: 'MINUTES'){       
              
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh b6fq
            //   date'''
            // }
L
liuyq-617 已提交
387 388 389
          }
        }
        stage('test_b7_s10') {
L
liuyq-617 已提交
390
          agent{label " slave10 || slave20 "}
L
liuyq-617 已提交
391 392 393 394 395 396 397 398 399 400
          steps {  
            pre_test()   
            // timeout(time: 55, unit: 'MINUTES'){       
              
            //   sh '''
            //   date
            //   cd ${WKC}/tests
            //   ./test-all.sh b7fq
            //   date'''              
            // }
L
liuyq-617 已提交
401 402
          }
        }        
Y
Yiqing Liu 已提交
403 404
    }
  }
L
liuyq-617 已提交
405
  }
L
liuyq-617 已提交
406
  post {  
407 408
        success {
            emailext (
409 410
                subject: "PR-result: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' SUCCESS",
                body: """<!DOCTYPE html>
411 412 413 414 415 416 417 418 419 420 421 422 423 424 425
                <html>
                <head>
                <meta charset="UTF-8">
                </head>
                <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
                    <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 16pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
                        <tr>
                            <td><br />
                                <b><font color="#0B610B"><font size="6">构建信息</font></font></b>
                                <hr size="2" width="100%" align="center" /></td>
                        </tr>
                        <tr>
                            <td>
                                <ul>
                                <div style="font-size:18px">
426
                                    <li>构建名称>>分支:${env.BRANCH_NAME}</li>
427 428
                                    <li>构建结果:<span style="color:green"> Successful </span></li>
                                    <li>构建编号:${BUILD_NUMBER}</li>
429
                                    <li>触发用户:${env.CHANGE_AUTHOR}</li>
L
fix  
liuyq-617 已提交
430
                                    <li>提交信息:${env.CHANGE_TITLE}</li>
431 432
                                    <li>构建地址:<a href=${BUILD_URL}>${BUILD_URL}</a></li>
                                    <li>构建日志:<a href=${BUILD_URL}console>${BUILD_URL}console</a></li>
433
                                    
434 435 436 437 438 439
                                </div>
                                </ul>
                            </td>
                        </tr>
                    </table></font>
                </body>
440
                </html>""",
L
liuyq-617 已提交
441
                to: "${env.CHANGE_AUTHOR_EMAIL}",
442 443 444 445 446
                from: "support@taosdata.com"
            )
        }
        failure {
            emailext (
447 448
                subject: "PR-result: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]' FAIL",
                body: """<!DOCTYPE html>
449 450 451 452 453 454 455 456 457 458 459 460 461 462 463
                <html>
                <head>
                <meta charset="UTF-8">
                </head>
                <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
                    <table width="95%" cellpadding="0" cellspacing="0" style="font-size: 16pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
                        <tr>
                            <td><br />
                                <b><font color="#0B610B"><font size="6">构建信息</font></font></b>
                                <hr size="2" width="100%" align="center" /></td>
                        </tr>
                        <tr>
                            <td>
                                <ul>
                                <div style="font-size:18px">
464
                                    <li>构建名称>>分支:${env.BRANCH_NAME}</li>
L
liuyq-617 已提交
465
                                    <li>构建结果:<span style="color:red"> Failure </span></li>
466
                                    <li>构建编号:${BUILD_NUMBER}</li>
467
                                    <li>触发用户:${env.CHANGE_AUTHOR}</li>
L
fix  
liuyq-617 已提交
468
                                    <li>提交信息:${env.CHANGE_TITLE}</li>
469 470
                                    <li>构建地址:<a href=${BUILD_URL}>${BUILD_URL}</a></li>
                                    <li>构建日志:<a href=${BUILD_URL}console>${BUILD_URL}console</a></li>
471
                                    
472 473 474 475 476 477
                                </div>
                                </ul>
                            </td>
                        </tr>
                    </table></font>
                </body>
478
                </html>""",
L
liuyq-617 已提交
479
                to: "${env.CHANGE_AUTHOR_EMAIL}",
480 481 482
                from: "support@taosdata.com"
            )
        }
L
liuyq-617 已提交
483
    } 
X
xiaolei li 已提交
484
}