diff --git a/substrate/.gitlab-ci.yml b/substrate/.gitlab-ci.yml index ddbd74d1bf..1227153028 100644 --- a/substrate/.gitlab-ci.yml +++ b/substrate/.gitlab-ci.yml @@ -63,6 +63,24 @@ variables: - rustup show - cargo --version - sccache -s + # if there is no directory for this $CI_COMMIT_REF_NAME/$CI_JOB_NAME + # create such directory and + # copy recursively all the files from the newest dir which has $CI_JOB_NAME, if it exists + - | + if [[ ! -d $CARGO_HOME ]]; then + mkdir -p /ci-cache/${CI_PROJECT_NAME}/cargo/${CI_COMMIT_REF_NAME}; + FRESH_CACHE=$(find /ci-cache/${CI_PROJECT_NAME}/cargo -mindepth 2 -maxdepth 2 \ + -type d -name ${CI_JOB_NAME} -exec stat --printf="%Y\t%n\n" {} \; |sort -n -r |head -1 |cut -f2); + if [[ -d $FRESH_CACHE ]]; then + echo "____Using" "$FRESH_CACHE" "to prepopulate the cache____"; + cp -r "${FRESH_CACHE}" "${CARGO_HOME}"; + touch ${CARGO_HOME}/config; + else + echo "_____No such cargo dir, proceeding from scratch_____"; + fi + else + echo "____No need to prepopulate the cache____"; + fi only: - master - /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1 @@ -78,7 +96,7 @@ variables: dependencies: [] interruptible: true tags: - - linux-docker + - ci2 .build-only: &build-only only: