def pre_test(){ sh ''' sudo rmtaos||echo 'no taosd installed' ''' sh ''' cd ${WKC} git reset --hard git checkout $BRANCH_NAME git pull git submodule update cd ${WK} git reset --hard git checkout $BRANCH_NAME git pull export TZ=Asia/Harbin date rm -rf ${WK}/debug mkdir debug cd debug cmake -DMEMORY_SANITIZER=true .. > /dev/null make > /dev/null make install > /dev/null pip3 install ${WKC}/src/connector/python/ || echo 0 ''' return 1 } def pre_test_p(){ sh ''' sudo rmtaos||echo 'no taosd installed' ''' sh ''' cd ${WKC} git reset --hard git checkout $BRANCH_NAME git pull git submodule update cd ${WK} git reset --hard git checkout $BRANCH_NAME git pull export TZ=Asia/Harbin date rm -rf ${WK}/debug mkdir debug cd debug cmake .. > /dev/null make > /dev/null make install > /dev/null pip3 install ${WKC}/src/connector/python/ || echo 0 ''' return 1 } pipeline { agent none environment{ WK = '/data/lib/jenkins/workspace/TDinternal' WKC= '/data/lib/jenkins/workspace/TDinternal/community' } stages { stage('Parallel test stage') { parallel { stage('pytest') { agent{label 'slam1'} steps { pre_test_p() sh ''' cd ${WKC}/tests find pytest -name '*'sql|xargs rm -rf ./test-all.sh pytest date''' } } stage('test_b1') { agent{label 'slam2'} steps { pre_test() sh ''' cd ${WKC}/tests ./test-all.sh b1 date''' } } stage('test_crash_gen') { agent{label "slam3"} steps { pre_test() sh ''' cd ${WKC}/tests/pytest ''' catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/tests/pytest ./crash_gen.sh -a -p -t 4 -s 2000 ''' } catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/tests/pytest rm -rf /var/lib/taos/* rm -rf /var/log/taos/* ./handle_crash_gen_val_log.sh ''' } catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/tests/pytest rm -rf /var/lib/taos/* rm -rf /var/log/taos/* ./handle_taosd_val_log.sh ''' } sh''' nohup taosd >/dev/null & sleep 10 ''' catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/tests/gotest bash batchtest.sh ''' } catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/tests/examples/python/PYTHONConnectorChecker python3 PythonChecker.py ''' } catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/tests/examples/JDBC/JDBCDemo/ mvn clean package assembly:single -DskipTests >/dev/null java -jar target/JDBCDemo-SNAPSHOT-jar-with-dependencies.jar -host 127.0.0.1 ''' } catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/src/connector/jdbc mvn clean package -Dmaven.test.skip=true >/dev/null cd ${WKC}/tests/examples/JDBC/JDBCDemo/ java --class-path=../../../../src/connector/jdbc/target:$JAVA_HOME/jre/lib/ext -jar target/JDBCDemo-SNAPSHOT-jar-with-dependencies.jar -host 127.0.0.1 ''' } catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cp -rf ${WKC}/tests/examples/nodejs ${JENKINS_HOME}/workspace/ cd ${JENKINS_HOME}/workspace/nodejs node nodejsChecker.js host=localhost ''' } catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${JENKINS_HOME}/workspace/C#NET/src/CheckC# dotnet run ''' } sh ''' pkill -9 taosd cd ${WKC}/tests ./test-all.sh b2 date ''' sh ''' cd ${WKC}/tests ./test-all.sh full unit date''' } } stage('test_valgrind') { agent{label "slam4"} steps { pre_test() catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WKC}/tests/pytest nohup taosd >/dev/null & sleep 10 python3 concurrent_inquiry.py -c 1 ''' } sh ''' cd ${WKC}/tests ./test-all.sh full jdbc date''' sh ''' cd ${WKC}/tests/pytest ./valgrind-test.sh 2>&1 > mem-error-out.log ./handle_val_log.sh date cd ${WKC}/tests ./test-all.sh b3 date''' sh ''' date cd ${WKC}/tests ./test-all.sh full example date''' } } stage('arm64_build'){ agent{label 'arm64'} steps{ sh ''' cd ${WK} git fetch git checkout develop git pull cd ${WKC} git fetch git checkout develop git pull git submodule update cd ${WKC}/packaging ./release.sh -v cluster -c aarch64 -n 2.0.0.0 -m 2.0.0.0 ''' } } stage('arm32_build'){ agent{label 'arm32'} steps{ catchError(buildResult: 'SUCCESS', stageResult: 'FAILURE') { sh ''' cd ${WK} git fetch git checkout develop git pull cd ${WKC} git fetch git checkout develop git pull git submodule update cd ${WKC}/packaging ./release.sh -v cluster -c aarch32 -n 2.0.0.0 -m 2.0.0.0 ''' } } } } } } post { success { emailext ( subject: "SUCCESSFUL: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'", body: '''

构建信息
  • 构建名称>>分支:${PROJECT_NAME}
  • 构建结果: Successful
  • 构建编号:${BUILD_NUMBER}
  • 触发用户:${CAUSE}
  • 变更概要:${CHANGES}
  • 构建地址:${BUILD_URL}
  • 构建日志:${BUILD_URL}console
  • 变更集:${JELLY_SCRIPT}
''', to: "yqliu@taosdata.com,pxiao@taosdata.com", from: "support@taosdata.com" ) } failure { emailext ( subject: "FAILED: Job '${env.JOB_NAME} [${env.BUILD_NUMBER}]'", body: '''

构建信息
  • 构建名称>>分支:${PROJECT_NAME}
  • 构建结果: Successful
  • 构建编号:${BUILD_NUMBER}
  • 触发用户:${CAUSE}
  • 变更概要:${CHANGES}
  • 构建地址:${BUILD_URL}
  • 构建日志:${BUILD_URL}console
  • 变更集:${JELLY_SCRIPT}
''', to: "yqliu@taosdata.com,pxiao@taosdata.com", from: "support@taosdata.com" ) } } }