X-Git-Url: https://gerrit.nordix.org/gitweb?a=blobdiff_plain;f=jjb%2Fnsm%2Fe2e-long-run.Jenkinsfile;h=15913737f19a1f3da8b30e9370504434cd38561d;hb=108c0cb62c3677e0bc5fef183019b06a50771cc6;hp=5090c31536dc31710fd4008d292b0c2e759e1e0b;hpb=12d3064f999e9eb15e1fca5e8944694b45c5f442;p=infra%2Fcicd.git diff --git a/jjb/nsm/e2e-long-run.Jenkinsfile b/jjb/nsm/e2e-long-run.Jenkinsfile index 5090c315..15913737 100644 --- a/jjb/nsm/e2e-long-run.Jenkinsfile +++ b/jjb/nsm/e2e-long-run.Jenkinsfile @@ -65,6 +65,9 @@ node('nordix-nsm-build-ubuntu2204') { stage('E2E List') { E2EList(number_of_runs, interval, environment_name, ip_family, focus, skip).call() } + stage('Report') { + Report(environment_name, ip_family).call() + } stage('Cleanup') { Cleanup() } @@ -77,7 +80,6 @@ def E2EList(number_of_runs, interval, environment_name, ip_family, focus, skip) def stages = [:] def list = sh(script: "seq -w 1 $number_of_runs | paste -sd ' ' -", returnStdout: true).trim().split(' ') def previous = '0' - env.E2E_PREVIOUSLY_EXECUTED = previous for (i in list) { stages.put("$i", E2E(i, previous, interval, environment_name, ip_family, focus, skip)) previous = i @@ -89,25 +91,41 @@ def E2EList(number_of_runs, interval, environment_name, ip_family, focus, skip) // Run e2e def E2E(id, previous_id, interval, environment_name, ip_family, focus, skip) { return { - stage('Wait for previous') { - waitUntil(initialRecurrencePeriod: 15000, quiet: true) { - return env.E2E_PREVIOUSLY_EXECUTED == previous_id - } - } - if (previous_id != '0') { - stage("Wait $interval seconds") { - sh "sleep $interval" - } + def wait = sh(script: "echo `expr $interval \\* $previous_id`", returnStdout: true).trim() + stage("Wait $wait seconds") { + sh "sleep $wait" } stage('E2E') { def command = "make e2e E2E_ENVIRONMENT=\"$environment_name\" E2E_IP_FAMILY=\"$ip_family\" E2E_FOCUS=\"$focus\" E2E_SKIP=\"$skip\"" - try { - ExecSh(command).call() - } catch (Exception e) { - unstable 'Failing e2e' + timeout(time: interval, unit: 'SECONDS') { + try { + ExecSh(command).call() + } catch (Exception e) { + unstable 'Failing e2e' + } } + Archive(id).call() + } + } +} + +def Report(environment_name, ip_family) { + return { + // Collect logs + def command = "cd ./test/e2e ; ./environment/$environment_name/$ip_family/test.sh on_failure" + ExecSh(command).call() + Archive('Report').call() + } +} + +def Archive(id) { + return { + try { + sh "tar -czvf ${id}.tar.gz -C _output ." + archiveArtifacts artifacts: "${id}.tar.gz", followSymlinks: false + sh 'rm -rf _output ; mkdir -p _output' + } catch (Exception e) { } - env.E2E_PREVIOUSLY_EXECUTED = id } }