diff --git a/jobs/pipelines/run-test-scenarios.groovy b/jobs/pipelines/run-test-scenarios.groovy
index b83dcec..c7697b9 100644
--- a/jobs/pipelines/run-test-scenarios.groovy
+++ b/jobs/pipelines/run-test-scenarios.groovy
@@ -56,36 +56,30 @@
                 def String description  = readFile("jenkins_agent_description.txt")
                 currentBuild.description = "${description}"
             }
-            if (currentBuild.result != 'FAILURE') {
-                stage("Archive all xml reports") {
-                    dir("${env.slave_workdir }") {
-                        archiveArtifacts artifacts: "**/*.xml,**/*.log"
-                        }
-                }
-                stage("report results to testrail from jenkins master") {
-                    if ("${env.REPORT_TO_TESTRAIL}" != "false") {
-                        common.infoMsg("Running on: " + env.PARENT_NODE_NAME, "blue")
-                        shared.swarm_testrail_report(steps, env.PARENT_NODE_NAME)
-                    } else {
-                        common.infoMsg("REPORT_TO_TESTRAIL is set to FALSE. Skipped this step ")
+            stage("Archive all xml reports") {
+                dir("${env.slave_workdir }") {
+                    archiveArtifacts artifacts: "**/*.xml,**/*.log"
                     }
-                } // stage("report results to testrail from jenkins master")
-                stage("Store TestRail reports to job description") {
-                    if ("${env.REPORT_TO_TESTRAIL}" != "false") {
-                        if (fileExists("description.txt")) {
-                            def String description  = readFile("description.txt")
-                            currentBuild.description += "${description}"
-                        }
-                    } else {
-                        common.infoMsg("REPORT_TO_TESTRAIL is set to FALSE. Skipped this step ")
-                        println(currentBuild.result)
-                    }
-                } // stage("Store TestRail reports to job description")
-            }//report if success
-            else{
-                common.infoMsg("Upgrade status different from successful. Skipped report steps.")
-                println("Current result is " + currentBuild.result)
             }
+            stage("report results to testrail from jenkins master") {
+                if ("${env.REPORT_TO_TESTRAIL}" != "false") {
+                    common.infoMsg("Running on: " + env.PARENT_NODE_NAME, "blue")
+                    shared.swarm_testrail_report(steps, env.PARENT_NODE_NAME)
+                } else {
+                    common.infoMsg("REPORT_TO_TESTRAIL is set to FALSE. Skipped this step ")
+                }
+            } // stage("report results to testrail from jenkins master")
+            stage("Store TestRail reports to job description") {
+                if ("${env.REPORT_TO_TESTRAIL}" != "false") {
+                    if (fileExists("description.txt")) {
+                        def String description  = readFile("description.txt")
+                        currentBuild.description += "${description}"
+                    }
+                } else {
+                    common.infoMsg("REPORT_TO_TESTRAIL is set to FALSE. Skipped this step ")
+                    println(currentBuild.result)
+                }
+            } // stage("Store TestRail reports to job description")
         } // dir
     } // node
-} // timeout
\ No newline at end of file
+} // timeout
