123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- String cron_timezone = 'TZ=Asia/Shanghai'
- String cron_string = BRANCH_NAME == "master" ? "05 21 * * * " : ""
- int total_timeout_minutes = 90
- // pipeline
- pipeline {
- triggers {
- cron """${cron_timezone}
- ${cron_string}"""
- }
- options {
- timestamps()
- timeout(time: total_timeout_minutes, unit: 'MINUTES')
- }
- agent {
- kubernetes {
- // label 'milvus-scale-test'
- // inheritFrom 'milvus-test'
- defaultContainer 'milvus-test'
- yamlFile "build/ci/jenkins/pod/scale-test.yaml"
- customWorkspace "/home/jenkins/agent"
- // idle 5 minutes to wait clean up tasks
- idleMinutes 5
- }
- }
- environment {
- PROJECT_NAME = "milvus"
- TEST_TYPE = "scale-test"
- // SEMVER = "${BRANCH_NAME.contains('/') ? BRANCH_NAME.substring(BRANCH_NAME.lastIndexOf('/') + 1) : BRANCH_NAME}"
- ARTIFACTS = "${env.WORKSPACE}/_artifacts"
- MILVUS_LOGS = "/tmp/milvus_logs/*"
- }
- stages {
- stage ('Install'){
- steps {
- container('milvus-test') {
- dir ('tests/python_client'){
- sh """
- pip install --upgrade setuptools
- pip install --upgrade pip
- pip install -r requirements.txt
- """
- }
- }
- }
- }
- stage ('Scale Test') {
- steps {
- container('milvus-test') {
- dir ('tests/python_client/scale') {
- script {
- // pytest run scale case in parallel
- sh 'pytest test_data_node_scale.py -v -s'
- sh 'pytest test_index_node_scale.py -n 2 -v -s'
- sh 'pytest test_proxy_scale.py -v -s'
- sh 'pytest test_query_node_scale.py -n 3 -v -s'
- }
- }
- }
- }
- }
- }
- post {
- unsuccessful {
- container ('jnlp') {
- script {
- emailext subject: '$DEFAULT_SUBJECT',
- body: '$DEFAULT_CONTENT',
- // recipientProviders: [requestor()],
- // replyTo: '$DEFAULT_REPLYTO',
- to: 'qa@zilliz.com'
- }
- }
- }
- always {
- container('milvus-test') {
- dir ('tests/scripts') {
- script {
- dir("${env.ARTIFACTS}") {
- sh "tar -zcvf artifacts-${PROJECT_NAME}-${TEST_TYPE}-pytest-logs.tar.gz /tmp/ci_logs --remove-files || true"
- archiveArtifacts artifacts: "artifacts-${PROJECT_NAME}-${TEST_TYPE}-pytest-logs.tar.gz ", allowEmptyArchive: true
- DIR_LIST = sh(returnStdout: true, script: 'ls -d1 ${MILVUS_LOGS}').trim()
- for (d in DIR_LIST.tokenize("\n")) {
- sh "echo $d"
- def release_name = d.split('/')[-1]
- sh "tar -zcvf artifacts-${PROJECT_NAME}-${TEST_TYPE}-${release_name}-logs.tar.gz ${d} --remove-files || true"
- archiveArtifacts artifacts: "artifacts-${PROJECT_NAME}-${TEST_TYPE}-${release_name}-logs.tar.gz ", allowEmptyArchive: true
- }
- }
- }
- }
- }
- }
- }
- }
|