From f33ba8f8c9e5b620b57410b5d412ed0c136329b2 Mon Sep 17 00:00:00 2001 From: del-zhenwu <56623710+del-zhenwu@users.noreply.github.com> Date: Thu, 16 Apr 2020 23:35:48 +0800 Subject: [PATCH] add mishards test stage (#1960) * add mishards test stage Signed-off-by: zw * add clean up Signed-off-by: zw --- ci/jenkins/Jenkinsfile | 6 ++++++ ci/jenkins/step/cleanupShardsDev.groovy | 12 ++++++++++++ ci/jenkins/step/shardsDevNightlyTest.groovy | 14 ++++++++++++++ 3 files changed, 32 insertions(+) create mode 100644 ci/jenkins/step/cleanupShardsDev.groovy create mode 100644 ci/jenkins/step/shardsDevNightlyTest.groovy diff --git a/ci/jenkins/Jenkinsfile b/ci/jenkins/Jenkinsfile index a1f23fbba9..ec867ed885 100644 --- a/ci/jenkins/Jenkinsfile +++ b/ci/jenkins/Jenkinsfile @@ -148,6 +148,7 @@ pipeline { FROMAT_SEMVER = "${env.SEMVER}".replaceAll("\\.", "-").replaceAll("_", "-") FORMAT_OS_NAME = "${OS_NAME}".replaceAll("\\.", "-").replaceAll("_", "-") HELM_RELEASE_NAME = "${env.PIPELINE_NAME}-${env.FROMAT_SEMVER}-${env.BUILD_NUMBER}-single-${FORMAT_OS_NAME}-${BINARY_VERSION}".toLowerCase() + SHARDS_HELM_RELEASE_NAME = "${env.PIPELINE_NAME}-${env.FROMAT_SEMVER}-${env.BUILD_NUMBER}-shards-${FORMAT_OS_NAME}-${BINARY_VERSION}".toLowerCase() } agent { @@ -166,6 +167,7 @@ pipeline { boolean isNightlyTest = isTimeTriggeredBuild() if (isNightlyTest) { load "${env.WORKSPACE}/ci/jenkins/step/singleDevNightlyTest.groovy" + load "${env.WORKSPACE}/ci/jenkins/step/shardsDevNightlyTest.groovy" } else { load "${env.WORKSPACE}/ci/jenkins/step/singleDevTest.groovy" } @@ -180,6 +182,10 @@ pipeline { container('milvus-test-env') { script { load "${env.WORKSPACE}/ci/jenkins/step/cleanupSingleDev.groovy" + boolean isNightlyTest = isTimeTriggeredBuild() + if (isNightlyTest) { + load "${env.WORKSPACE}/ci/jenkins/step/cleanupShardsDev.groovy" + } } } } diff --git a/ci/jenkins/step/cleanupShardsDev.groovy b/ci/jenkins/step/cleanupShardsDev.groovy new file mode 100644 index 0000000000..266244d5f8 --- /dev/null +++ b/ci/jenkins/step/cleanupShardsDev.groovy @@ -0,0 +1,12 @@ +try { + def helmResult = sh script: "helm status -n milvus ${env.SHARDS_HELM_RELEASE_NAME}", returnStatus: true + if (!helmResult) { + sh "helm uninstall -n milvus ${env.SHARDS_HELM_RELEASE_NAME}" + } +} catch (exc) { + def helmResult = sh script: "helm status -n milvus ${env.SHARDS_HELM_RELEASE_NAME}", returnStatus: true + if (!helmResult) { + sh "helm uninstall -n milvus ${env.SHARDS_HELM_RELEASE_NAME}" + } + throw exc +} diff --git a/ci/jenkins/step/shardsDevNightlyTest.groovy b/ci/jenkins/step/shardsDevNightlyTest.groovy new file mode 100644 index 0000000000..e50777c638 --- /dev/null +++ b/ci/jenkins/step/shardsDevNightlyTest.groovy @@ -0,0 +1,14 @@ +dir ('milvus-helm') { + sh 'helm version' + sh 'helm repo add stable https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts' + sh 'helm repo update' + checkout([$class: 'GitSCM', branches: [[name: "nightly"]], userRemoteConfigs: [[url: "https://github.com/milvus-io/milvus-helm.git", name: 'origin', refspec: "+refs/heads/nightly:refs/remotes/origin/nightly"]]]) + retry(3) { + sh "helm install --wait --timeout 300s --set mishards.enabled=true --set persistence.enabled=true --set image.repository=registry.zilliz.com/milvus/engine --set image.tag=${DOCKER_VERSION} --set image.pullPolicy=Always --set service.type=ClusterIP -f ci/db_backend/mysql_${BINARY_VERSION}_values.yaml --namespace milvus ${env.SHARDS_HELM_RELEASE_NAME} ." + } +} + +dir ("tests/milvus_python_test") { + sh 'python3 -m pip install -r requirements.txt' + sh "pytest . --alluredir=\"test_out/dev/shards/\" --ip ${env.SHARDS_HELM_RELEASE_NAME}-milvus-mishards.milvus.svc.cluster.local" +}