From 2427a5f39e0b9b049d1fff6a93e9b611856f1ffc Mon Sep 17 00:00:00 2001 From: mnokka-unikie Date: Tue, 10 Dec 2024 09:15:05 +0200 Subject: [PATCH] HW test failure slacking Signed-off-by: mnokka-unikie --- ghaf-main-pipeline.groovy | 12 ++++++++++-- utils.groovy | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/ghaf-main-pipeline.groovy b/ghaf-main-pipeline.groovy index 3b6bb6c..04ec495 100644 --- a/ghaf-main-pipeline.groovy +++ b/ghaf-main-pipeline.groovy @@ -17,7 +17,7 @@ properties([ // Record failed target(s) def failedTargets = [] - +def failedHWTests = [] def target_jobs = [:] //////////////////////////////////////////////////////////////////////////////// @@ -136,10 +136,16 @@ pipeline { servername = sh(script: 'uname -n', returnStdout: true).trim() echo "Server name:$servername" def formattedFailedMessage = "" + def formattedHWFailedMessage = "" + def line5="" + def line6="" if (failedTargets) { formattedFailedMessage = failedTargets.collect { "- ${it.trim()}" }.join("\n") } else { formattedFailedMessage = "No failed build targets" + formattedHWFailedMessage = failedHWTests.collect { "- ${it.trim()}" }.join("\n") + line5="\n*Failed HW test targets:*".stripIndent() + line6="\n${formattedHWFailedMessage}".stripIndent() } if (servername=="ghaf-jenkins-controller-prod") { serverchannel="ghaf-build" // prod main build failures channel @@ -152,7 +158,9 @@ pipeline { ${line1} ${line2} ${line3} - ${line4}""".stripIndent() + ${line4} + ${line5} + ${line6}""".stripIndent() slackSend ( channel: "$serverchannel", color: "danger", diff --git a/utils.groovy b/utils.groovy index 22dadee..9142838 100644 --- a/utils.groovy +++ b/utils.groovy @@ -233,7 +233,7 @@ def ghaf_hw_test(String flakeref, String device_config, String testset='_boot_') // Add a link to failed test job(s) on the calling pipeline def test_href = "⛔ ${flakeref_trimmed}" currentBuild.description = "${currentBuild.description}
${test_href}" - return + return flakeref } // Copy test results from agent to controller to 'test-results' directory copyArtifacts( @@ -243,6 +243,7 @@ def ghaf_hw_test(String flakeref, String device_config, String testset='_boot_') ) // Archive the test results archive_artifacts("ghaf-hw-test", flakeref_trimmed) + return null } def nix_eval_jobs(List targets) { @@ -310,7 +311,6 @@ def create_parallel_stages(List targets, String testset='_boot_bat_perf_', def displayName = "${it.target} (${it.system})" def targetAttr = "${it.system}.${it.target}" def scsdir = "scs/${targetAttr}/scs" - def target = "${it.target}" target_jobs[displayName] = { stage("Build ${displayName}") { def opts = "" @@ -322,7 +322,7 @@ def create_parallel_stages(List targets, String testset='_boot_bat_perf_', try { if (it.error) { error("Error in evaluation! ${it.error}") - } + } timestampBegin = sh(script: "date +%s", returnStdout: true).trim() sh "nix build -L ${it.drvPath}\\^* ${opts}" timestampEnd = sh(script: "date +%s", returnStdout: true).trim() @@ -339,7 +339,7 @@ def create_parallel_stages(List targets, String testset='_boot_bat_perf_', unstable("FAILED: ${displayName}") currentBuild.result = "FAILURE" if (failedTargets != null) { - failedTargets.add(target) + failedTargets.add(targetAttr) } println "Error: ${e.toString()}" } @@ -421,7 +421,15 @@ def create_parallel_stages(List targets, String testset='_boot_bat_perf_', if (testset != null && it.hwtest_device != null) { stage("Test ${displayName}") { script { - ghaf_hw_test(targetAttr, it.hwtest_device, testset) + flakeref=ghaf_hw_test(targetAttr, it.hwtest_device, '_boot_bat_perf_') + println ("Test creation and execution done") + if (flakeref==null) { + println("Test was OK") + } + else { + failedHWTests.add(flakeref) + println ("ERROR FOUND, target: ${flakeref}") + } } } }