diff --git a/src/com/mirantis/mk/Test.groovy b/src/com/mirantis/mk/Test.groovy
index 39a9c9f..87f6a56 100644
--- a/src/com/mirantis/mk/Test.groovy
+++ b/src/com/mirantis/mk/Test.groovy
@@ -30,6 +30,36 @@
     print("Conformance test output saved in " + outfile)
 }
 
+
+/**
+ * Upload conformance results to cfg node
+ *
+ * @param target        Kubernetes node for copy test results
+ * @param artifacts_dir Path with test results
+ */
+def CopyConformanceResults(master, target, artifacts_dir, output_file) {
+    def salt = new com.mirantis.mk.Salt()
+    def containerName = 'conformance_tests'
+    def test_node = target.replace("*", "")
+
+    out = salt.runSaltProcessStep(master, target, 'cmd.run', ["docker cp ${containerName}:/report /tmp"])
+    if (! out['return'][0].values()[0].contains('Error')) {
+        print("Copy XML test results for junit artifacts...")
+        salt.runSaltProcessStep(master, target, 'cmd.run', ["tar -cf /tmp/${output_file} -C /tmp/report  ."])
+
+        writeFile file: "${artifacts_dir}${output_file}", text: salt.getFileContent(master,
+                              target, "/tmp/${output_file}")
+
+        sh "mkdir -p ${artifacts_dir}/conformance_tests"
+        sh "tar -xf ${artifacts_dir}${output_file} -C ${artifacts_dir}/conformance_tests"
+
+        // collect artifacts
+        archiveArtifacts artifacts: "${artifacts_dir}${output_file}"
+
+        junit(keepLongStdio: true, testResults:  "${artifacts_dir}conformance_tests/**.xml")
+    }
+}
+
 /**
  * Copy test output to cfg node
  *
