Share files: Compresses files before sharing

This compresses the code files before they are shared between jobs in an
attempt to lower the shared storage overhead.

Change-Id: Ic4ad813e47a6cda429141886ed0ec796598d7b85
Signed-off-by: Matthew Dalzell <matthew.dalzell@arm.com>
diff --git a/clone.sh b/clone.sh
index 6a8628b..f401015 100755
--- a/clone.sh
+++ b/clone.sh
@@ -46,18 +46,37 @@
         return 0
     fi
 
+    # The non-compressed repo should not be in there, removing
     if [ ! -d "${SHARE_FOLDER}/${REPO_NAME}" ]; then
+        echo "Removing non-compressed ${REPO_NAME} as it should not be stored."
+        rm -rf "${SHARE_FOLDER}/${REPO_NAME}"
+    fi
+
+    if [ ! -f "${SHARE_FOLDER}/${REPO_NAME}.tar.gz" ]; then
         git_clone $REPO_URL "${SHARE_FOLDER}/${REPO_NAME}"
+        # Compress for shared area
         git_checkout "${SHARE_FOLDER}/${REPO_NAME}" $REPO_REFSPEC $SYNC_CMD
-    else
-        cd "${SHARE_FOLDER}/${REPO_NAME}"
-        echo -e "Share Folder ${REPO_NAME} $(git rev-parse --short HEAD)\n"
+        cd ${SHARE_FOLDER}
+        if [ "${REPO_NAME}" = "${TFM_NAME}" ] || [ "${REPO_NAME}" = "${TFM_TESTS_NAME}" ]; then
+            # These two need to remain as directories for now for further usage
+            tar -czf "${REPO_NAME}.tar.gz" "${REPO_NAME}"
+        else
+            tar -czf "${REPO_NAME}.tar.gz" "${REPO_NAME}" --remove-files
+        fi
         cd $OLDPWD
     fi
 
     # Copy repos into pwd dir (workspace in CI), so each job would work
     # on its own workspace
-    cp -a -f "${SHARE_FOLDER}/${REPO_NAME}" "${WORKSPACE}/${REPO_NAME}"
+    cp -a -f "${SHARE_FOLDER}/${REPO_NAME}.tar.gz" "${WORKSPACE}/${REPO_NAME}.tar.gz"
+    # De-compress the repo
+    tar -xzf "${WORKSPACE}/${REPO_NAME}.tar.gz" -C "${WORKSPACE}"
+    rm "${WORKSPACE}/${REPO_NAME}.tar.gz"
+
+    # Output the info of the current repo
+    cd "${WORKSPACE}/${REPO_NAME}"
+    echo -e "Local Folder ${REPO_NAME} $(git rev-parse --short HEAD)\n"
+    cd $OLDPWD
 }
 
 # Take into consideration non-CI runs where SHARE_FOLDER variable
@@ -151,4 +170,8 @@
 PSA_ARCH_TESTS_REFSPEC="${PSA_ARCH_TESTS_VERSION:-"$(parse_version ../tf-m-tests/tests_psa_arch/fetch_repo/CMakeLists.txt set\(PSA_ARCH_TESTS_VERSION \" 2)"}"
 PSA_ARCH_TESTS_NAME="psa-arch-tests"
 
+if [-d "${SHARE_FOLDER}/${TFM_TESTS_NAME}" ]; then
+    rm -rf "${SHARE_FOLDER}/${TFM_TESTS_NAME}"
+fi
+
 clone_repo_to_share_folder "${PSA_ARCH_TESTS_PROJECT}" "${PSA_ARCH_TESTS_NAME}" "${PSA_ARCH_TESTS_REFSPEC}"
diff --git a/lava_helper/codecov_helper.py b/lava_helper/codecov_helper.py
index f108437..4220c84 100644
--- a/lava_helper/codecov_helper.py
+++ b/lava_helper/codecov_helper.py
@@ -61,8 +61,8 @@
             dl_artifact("nspe/bin/tfm_ns.axf")
 
             script_dir = os.path.dirname(__file__)
-            run("python3 $SHARE_FOLDER/qa-tools/coverage-tool/coverage-reporting/intermediate_layer.py --config-json %s/trace2covjson.json --local-workspace $SHARE_FOLDER" % script_dir, cwd=job_dir)
-            run("python3 $SHARE_FOLDER/qa-tools/coverage-tool/coverage-reporting/generate_info_file.py --workspace $SHARE_FOLDER --json covjson.json", cwd=job_dir)
+            run("python3 %s/../../qa-tools/coverage-tool/coverage-reporting/intermediate_layer.py --config-json %s/trace2covjson.json --local-workspace %s" % (script_dir, script_dir, local_workspace), cwd=job_dir)
+            run("python3 %s/../../qa-tools/coverage-tool/coverage-reporting/generate_info_file.py --workspace %s --json covjson.json" % (script_dir, local_workspace), cwd=job_dir)
             # Remove sources, coverage of which we're not interested in (e.g.
             # 3rd party code).
             run(
diff --git a/lava_helper/codecov_merge.sh b/lava_helper/codecov_merge.sh
index 7487624..11c0d8d 100755
--- a/lava_helper/codecov_merge.sh
+++ b/lava_helper/codecov_merge.sh
@@ -12,7 +12,7 @@
 output_coverage_file=merge.info
 output_json_file=merge.json
 
-python3 $SHARE_FOLDER/qa-tools/coverage-tool/coverage-reporting/merge.py \
+python3 $WORKSPACE/qa-tools/coverage-tool/coverage-reporting/merge.py \
       $(find $input_folder -name "*.info" -exec echo "-a {}" \;) \
       -o $output_coverage_file \