diff --git a/jobs/pipelines/deploy-cicd-and-run-tests.groovy b/jobs/pipelines/deploy-cicd-and-run-tests.groovy
index 8240884..b0b0121 100644
--- a/jobs/pipelines/deploy-cicd-and-run-tests.groovy
+++ b/jobs/pipelines/deploy-cicd-and-run-tests.groovy
@@ -124,7 +124,9 @@
 // Temporary disable throttle to check how it will run
 //throttle(['fuel_devops_environment']) {
   node ("${NODE_NAME}") {
+    env.slave_workdir = pwd()
     try {
+
         // run deploy stages
         deploy(shared, common, steps, env_manager, batch_size, dist_upgrade_nodes)
         // run test stages
@@ -143,7 +145,9 @@
         }
 
         stage("Archive all xml reports") {
-            archiveArtifacts artifacts: "**/*.xml,**/*.ini,**/*.log,**/*.tar.gz"
+            dir("${env.slave_workdir }") {
+                archiveArtifacts artifacts: "**/*.xml,**/*.ini,**/*.log,**/*.tar.gz"
+                }
         }
 
         if ("${env.REPORT_TO_TESTRAIL}" != "false") {
@@ -162,7 +166,6 @@
                     currentBuild.description += "${description}"
                 }
             }
-
         }
 
         if (fileExists("jenkins_agent_description.txt")) {
@@ -170,21 +173,23 @@
             // then archive artifacts also on that node
             if (jenkins_slave_node_name != env.NODE_NAME) {
                 node ("${jenkins_slave_node_name}") {
-                    stage("Archive all xml reports from node ${jenkins_slave_node_name}") {
-                        archiveArtifacts artifacts: "**/*.xml,**/*.ini,**/*.log,**/*.tar.gz,*.xml,*.ini,*.log,*.tar.gz", allowEmptyArchive: true
-                    }
-                    if ("${env.REPORT_TO_TESTRAIL}" != "false") {
-                        stage("report results to testrail") {
-                            common.printMsg("Running on: " + node_with_reports, "blue")
-                            shared.swarm_testrail_report(steps, node_with_reports)
+                    dir("${env.slave_workdir }") {
+                        stage("Archive all xml reports from node ${jenkins_slave_node_name}") {
+                            archiveArtifacts artifacts: "**/*.xml,**/*.ini,**/*.log,**/*.tar.gz,*.xml,*.ini,*.log,*.tar.gz", allowEmptyArchive: true
                         }
-                        stage("Store TestRail reports to job description from ${jenkins_slave_node_name}") {
-                            if (fileExists("description.txt")) {
-                                def String description  = readFile("description.txt")
-                                currentBuild.description += "${description}"
+                        if ("${env.REPORT_TO_TESTRAIL}" != "false") {
+                            stage("report results to testrail") {
+                                common.printMsg("Running on: " + node_with_reports, "blue")
+                                shared.swarm_testrail_report(steps, node_with_reports)
+                            }
+                            stage("Store TestRail reports to job description from ${jenkins_slave_node_name}") {
+                                if (fileExists("description.txt")) {
+                                    def String description  = readFile("description.txt")
+                                    currentBuild.description += "${description}"
+                                }
                             }
                         }
-                    }
+                    } //dir
                 } // node
             }
         }
