diff --git a/.gitlab/gitlab-ci-frontier.yml b/.gitlab/gitlab-ci-frontier.yml index c69da76..34e7bbf 100644 --- a/.gitlab/gitlab-ci-frontier.yml +++ b/.gitlab/gitlab-ci-frontier.yml @@ -79,6 +79,7 @@ install:frontier-gcc: - rsync -av "${SPACK_BUILD_DIR}/spack" "${SPACK_BUILD_COMPUTING_DIR}" - rsync -av "${SPACK_USER_CACHE_PATH}/" "${SPACK_USER_CACHE_COMPUTING_PATH}" - SPACK_BUILD_DIR="${SPACK_BUILD_COMPUTING_DIR}" SPACK_USER_CACHE_PATH="${SPACK_USER_CACHE_COMPUTING_PATH}" bash scripts/ci/gitlab-ci/run.sh install + - rsync -av "${SPACK_USER_CACHE_COMPUTING_PATH}/" "${SPACK_USER_CACHE_PATH}" needs: - setup:frontier-gcc dependencies: diff --git a/scripts/ci/gitlab-ci/cdash-upload.patch b/scripts/ci/gitlab-ci/cdash-upload.patch new file mode 100644 index 0000000..e48d342 --- /dev/null +++ b/scripts/ci/gitlab-ci/cdash-upload.patch @@ -0,0 +1,23 @@ +diff --git a/lib/spack/spack/reporters/cdash.py b/lib/spack/spack/reporters/cdash.py +index cd3ac31a37..c9ae4949fa 100644 +--- a/lib/spack/spack/reporters/cdash.py ++++ b/lib/spack/spack/reporters/cdash.py +@@ -296,7 +296,7 @@ def build_report(self, report_dir, specs): + # Generate reports for each package in each spec. + for spec in specs: + duration = 0 +- if "time" in spec: ++ if "time" in spec and spec["time"]: + duration = int(spec["time"]) + for package in spec["packages"]: + self.build_report_for_package(report_dir, package, duration) +@@ -432,6 +432,9 @@ def upload(self, filename): + print("Cannot upload {0} due to missing upload url".format(filename)) + return + ++ if self.cdash_upload_url == "skip_upload": ++ return ++ + # Compute md5 checksum for the contents of this file. + md5sum = checksum(hashlib.md5, filename, block_size=8192) + diff --git a/scripts/ci/gitlab-ci/run.sh b/scripts/ci/gitlab-ci/run.sh index 386fb04..d11b157 100755 --- a/scripts/ci/gitlab-ci/run.sh +++ b/scripts/ci/gitlab-ci/run.sh @@ -48,6 +48,12 @@ case ${STEP} in echo "**********Setup Begin**********" git clone -c feature.manyFiles=true https://github.com/spack/spack.git "${SPACK_BUILD_DIR}/spack" + # Apply patch to be able to skip the cdash upload during spack install + patch="$(pwd)/scripts/ci/gitlab-ci/cdash-upload.patch" + cd "${SPACK_BUILD_DIR}/spack" + git apply "$patch" + cd - + # Clone spack-packages mkdir -p "${SPACK_BUILD_DIR}/spack-packages" cd "${SPACK_BUILD_DIR}/spack-packages" @@ -103,7 +109,13 @@ case ${STEP} in spack config blame # Install the environment with timing and parallel jobs - spack -t install "-j$((NUM_CORES*2))" --show-log-on-error --no-check-signature --fail-fast | tee spack_log.out 2>&1 + spack -t install \ + "-j$((NUM_CORES*2))" \ + --show-log-on-error \ + --no-check-signature \ + --fail-fast \ + "--cdash-upload-url=skip_upload" \ + | tee spack_log.out 2>&1 # Show what was installed spack find -lv @@ -112,8 +124,9 @@ case ${STEP} in submit) echo "**********Submit Begin**********" - # Placeholder for submission to CDash or other reporting systems - echo "Submit step - currently a placeholder" + + find "${SPACK_USER_CACHE_PATH}"/reports -type f -exec curl -T {} "https://open.cdash.org/submit.php?project=TOOLS-SDK" ';' + echo "**********Submit End**********" ;;