X-Git-Url: https://gerrit.nordix.org/gitweb?a=blobdiff_plain;f=jjb%2Fnsm%2Fe2e.Jenkinsfile;h=26b64b39f40cd7463130f4bfb0b570ceba927682;hb=5420f22c00eeb5ec6ef2371554f235fa5919a90f;hp=7ff13bb9cbe070bb466b5a8ebda297fe81f6f48b;hpb=1e04de639d97d2ede5202ece1f97183b042bfb0e;p=infra%2Fcicd.git diff --git a/jjb/nsm/e2e.Jenkinsfile b/jjb/nsm/e2e.Jenkinsfile index 7ff13bb9..26b64b39 100644 --- a/jjb/nsm/e2e.Jenkinsfile +++ b/jjb/nsm/e2e.Jenkinsfile @@ -33,6 +33,7 @@ node('nordix-nsm-build-ubuntu2204') { def environment_name = params.ENVIRONMENT_NAME def focus = params.FOCUS def skip = params.SKIP + def kind_external_host_default_route = params.KIND_EXTERNAL_HOST_DEFAULT_ROUTE def seed = params.SEED @@ -53,20 +54,24 @@ node('nordix-nsm-build-ubuntu2204') { stage('Environment') { currentBuild.description = "Meridio version: $meridio_version / TAPA version: $tapa_version / NSM version: $nsm_version / IP Family: $ip_family / Kubernetes version: $kubernetes_version / Current Branch: $current_branch / Seed: $seed" - def command = "make -s -C test/e2e/environment/$environment_name/ KUBERNETES_VERSION=$kubernetes_version NSM_VERSION=$nsm_version IP_FAMILY=$ip_family KUBERNETES_WORKERS=$number_of_workers MERIDIO_VERSION=$meridio_version TAPA_VERSION=$tapa_version" + def command = "make -s -C test/e2e/environment/$environment_name/ KUBERNETES_VERSION=$kubernetes_version NSM_VERSION=$nsm_version IP_FAMILY=$ip_family KUBERNETES_WORKERS=$number_of_workers MERIDIO_VERSION=$meridio_version TAPA_VERSION=$tapa_version KIND_EXTERNAL_HOST_DEFAULT_ROUTE=$kind_external_host_default_route" try { ExecSh(command).call() + } catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) { + currentBuild.result = 'ABORTED' } catch (Exception e) { unstable 'Environment setup failed' currentBuild.result = 'FAILURE' } } stage('E2E') { - if (currentBuild.result != 'FAILURE') { + if (currentBuild.result != 'FAILURE' && currentBuild.result != 'ABORTED') { def command = "make e2e E2E_PARAMETERS=\"\$(cat ./test/e2e/environment/$environment_name/$ip_family/config.txt | tr '\\n' ' ')\" E2E_SEED=$seed E2E_FOCUS=\"$focus\" E2E_SKIP=\"$skip\"" try { ExecSh(command).call() currentBuild.result = 'SUCCESS' + } catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) { + currentBuild.result = 'ABORTED' } catch (Exception e) { unstable 'E2E Tests failed' currentBuild.result = 'FAILURE' @@ -78,7 +83,9 @@ node('nordix-nsm-build-ubuntu2204') { } stage('Report') { try { - Report().call() + Report(build_number).call() + } catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) { + currentBuild.result = 'ABORTED' } catch (Exception e) { unstable 'Failed to create the report' } @@ -98,11 +105,11 @@ node('nordix-nsm-build-ubuntu2204') { def Next(next, number_of_workers, environment_name, focus, skip, current_branch) { return { - def meridio_version = GetMeridioVersion() - def tapa_version = GetTAPAVersion() - def nsm_version = GetNSMVersion() - def kubernetes_version = GetKubernetesVersion() - def ip_family = GetIPFamily() + def meridio_version = GetMeridioVersion(environment_name) + def tapa_version = GetTAPAVersion(environment_name) + def nsm_version = GetNSMVersion(environment_name) + def kubernetes_version = GetKubernetesVersion(environment_name) + def ip_family = GetIPFamily(environment_name) def seed = GetSeed() echo "Meridio version: $meridio_version / TAPA version: $tapa_version / NSM version: $nsm_version / IP Family: $ip_family / Kubernetes version: $kubernetes_version / Seed: $seed" build job: 'meridio-e2e-test-kind', parameters: [ @@ -123,39 +130,39 @@ def Next(next, number_of_workers, environment_name, focus, skip, current_branch) } } -def GetMeridioVersion() { - def number_of_versions = sh(script: 'cat test/e2e/environment/kind-helm/test-scope.yaml | yq ".Meridio[]" | wc -l', returnStdout: true).trim() +def GetMeridioVersion(environment_name) { + def number_of_versions = sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.Meridio[]' | wc -l", returnStdout: true).trim() def index_of_version_temp = sh(script: "shuf -i 1-$number_of_versions -n1", returnStdout: true).trim() def index_of_version = sh(script: "expr $index_of_version_temp - 1 || true", returnStdout: true).trim() - return sh(script: "cat test/e2e/environment/kind-helm/test-scope.yaml | yq '.Meridio[$index_of_version]'", returnStdout: true).trim() + return sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.Meridio[$index_of_version]'", returnStdout: true).trim() } -def GetTAPAVersion() { - def number_of_versions = sh(script: 'cat test/e2e/environment/kind-helm/test-scope.yaml | yq ".TAPA[]" | wc -l', returnStdout: true).trim() +def GetTAPAVersion(environment_name) { + def number_of_versions = sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.TAPA[]' | wc -l", returnStdout: true).trim() def index_of_version_temp = sh(script: "shuf -i 1-$number_of_versions -n1", returnStdout: true).trim() def index_of_version = sh(script: "expr $index_of_version_temp - 1 || true", returnStdout: true).trim() - return sh(script: "cat test/e2e/environment/kind-helm/test-scope.yaml | yq '.TAPA[$index_of_version]'", returnStdout: true).trim() + return sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.TAPA[$index_of_version]'", returnStdout: true).trim() } -def GetNSMVersion() { - def number_of_versions = sh(script: 'cat test/e2e/environment/kind-helm/test-scope.yaml | yq ".NSM[]" | wc -l', returnStdout: true).trim() +def GetNSMVersion(environment_name) { + def number_of_versions = sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.NSM[]' | wc -l", returnStdout: true).trim() def index_of_version_temp = sh(script: "shuf -i 1-$number_of_versions -n1", returnStdout: true).trim() def index_of_version = sh(script: "expr $index_of_version_temp - 1 || true", returnStdout: true).trim() - return sh(script: "cat test/e2e/environment/kind-helm/test-scope.yaml | yq '.NSM[$index_of_version]'", returnStdout: true).trim() + return sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.NSM[$index_of_version]'", returnStdout: true).trim() } -def GetKubernetesVersion() { - def number_of_versions = sh(script: 'cat test/e2e/environment/kind-helm/test-scope.yaml | yq ".Kubernetes[]" | wc -l', returnStdout: true).trim() +def GetKubernetesVersion(environment_name) { + def number_of_versions = sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.Kubernetes[]' | wc -l", returnStdout: true).trim() def index_of_version_temp = sh(script: "shuf -i 1-$number_of_versions -n1", returnStdout: true).trim() def index_of_version = sh(script: "expr $index_of_version_temp - 1 || true", returnStdout: true).trim() - return sh(script: "cat test/e2e/environment/kind-helm/test-scope.yaml | yq '.Kubernetes[$index_of_version]'", returnStdout: true).trim() + return sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.Kubernetes[$index_of_version]'", returnStdout: true).trim() } -def GetIPFamily() { - def number_of_ip_family = sh(script: 'cat test/e2e/environment/kind-helm/test-scope.yaml | yq ".IP-Family[]" | wc -l', returnStdout: true).trim() +def GetIPFamily(environment_name) { + def number_of_ip_family = sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.IP-Family[]' | wc -l", returnStdout: true).trim() def index_of_ip_family_temp = sh(script: "shuf -i 1-$number_of_ip_family -n1", returnStdout: true).trim() def index_of_ip_family = sh(script: "expr $index_of_ip_family_temp - 1 || true", returnStdout: true).trim() - return sh(script: "cat test/e2e/environment/kind-helm/test-scope.yaml | yq '.IP-Family[$index_of_ip_family]'", returnStdout: true).trim() + return sh(script: "cat test/e2e/environment/$environment_name/test-scope.yaml | yq '.IP-Family[$index_of_ip_family]'", returnStdout: true).trim() } def GetSeed() { @@ -163,7 +170,7 @@ def GetSeed() { } // http://JENKINS_URL/job/meridio-e2e-test-kind/api/json?tree=allBuilds[status,timestamp,id,result,description]{0,9}&pretty=true -def Report() { +def Report(id) { return { def jenkins_url = 'jenkins.nordix.org' @@ -193,8 +200,15 @@ def Report() { ReportIPFamily(success, failure).call() ReportKubernetes(success, failure).call() + sh 'printenv > _output/parameters.txt' + sh "echo 'RESULT=$currentBuild.result' >> _output/parameters.txt" + try { archiveArtifacts artifacts: '_output/**/*.*', followSymlinks: false + sh "tar -czvf ${id}.tar.gz -C _output ." + withCredentials([string(credentialsId: 'nsm-nordix-artifactory-api-key', variable: 'API_KEY')]) { + sh "curl -H 'X-JFrog-Art-Api:${API_KEY}' -T ${id}.tar.gz 'https://artifactory.nordix.org/artifactory/cloud-native/meridio/e2e-test-reports/${id}.tar.gz'" + } } catch (Exception e) { } }