From aaa551ca7c7e8dd9fc8792b64aafd0384780ec6c Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 26 Aug 2020 19:50:06 +0000 Subject: [PATCH] Merge pull request #11857 from mvines/cache (#11863) ci: cargo-target-cache is now channel specific (cherry picked from commit 5c7080c1f41b3a1c867dd5d2de04d488adc5dc2c) Co-authored-by: Michael Vines --- .buildkite/hooks/post-command | 23 +++++++++++++---------- .buildkite/hooks/pre-command | 21 +++++++++++---------- ci/channel-info.sh | 12 +++++++++--- 3 files changed, 33 insertions(+), 23 deletions(-) diff --git a/.buildkite/hooks/post-command b/.buildkite/hooks/post-command index 79ded21506..675afca95e 100644 --- a/.buildkite/hooks/post-command +++ b/.buildkite/hooks/post-command @@ -3,16 +3,19 @@ # # Save target/ for the next CI build on this machine # -( - set -x - d=$HOME/cargo-target-cache/"$BUILDKITE_LABEL" - mkdir -p "$d" - set -x - rsync -a --delete --link-dest="$PWD" target "$d" - du -hs "$d" - read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$d") - echo "--- ${cacheSizeInGB}GB: $d" -) +if [[ -z $CARGO_TARGET_CACHE ]]; then + echo "+++ CARGO_TARGET_CACHE not defined" # pre-command should have defined it +else + ( + set -x + mkdir -p "$CARGO_TARGET_CACHE" + set -x + rsync -a --delete --link-dest="$PWD" target "$CARGO_TARGET_CACHE" + du -hs "$CARGO_TARGET_CACHE" + read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$CARGO_TARGET_CACHE") + echo "--- ${cacheSizeInGB}GB: $CARGO_TARGET_CACHE" + ) +fi # # Add job_stats data point diff --git a/.buildkite/hooks/pre-command b/.buildkite/hooks/pre-command index 4f7a0dc398..f7151acc35 100644 --- a/.buildkite/hooks/pre-command +++ b/.buildkite/hooks/pre-command @@ -11,23 +11,24 @@ export PS4="++" # # Restore target/ from the previous CI build on this machine # +eval "$(ci/channel-info.sh)" +export CARGO_TARGET_CACHE=$HOME/cargo-target-cache/"$CHANNEL"-"$BUILDKITE_LABEL" ( set -x - d=$HOME/cargo-target-cache/"$BUILDKITE_LABEL" MAX_CACHE_SIZE=18 # gigabytes - if [[ -d $d ]]; then - du -hs "$d" - read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$d") - echo "--- ${cacheSizeInGB}GB: $d" + if [[ -d $CARGO_TARGET_CACHE ]]; then + du -hs "$CARGO_TARGET_CACHE" + read -r cacheSizeInGB _ < <(du -s --block-size=1800000000 "$CARGO_TARGET_CACHE") + echo "--- ${cacheSizeInGB}GB: $CARGO_TARGET_CACHE" if [[ $cacheSizeInGB -gt $MAX_CACHE_SIZE ]]; then - echo "--- $d is too large, removing it" - rm -rf "$d" + echo "--- $CARGO_TARGET_CACHE is too large, removing it" + rm -rf "$CARGO_TARGET_CACHE" fi else - echo "--- $d not present" + echo "--- $CARGO_TARGET_CACHE not present" fi - mkdir -p "$d"/target - rsync -a --delete --link-dest="$d" "$d"/target . + mkdir -p "$CARGO_TARGET_CACHE"/target + rsync -a --delete --link-dest="$CARGO_TARGET_CACHE" "$CARGO_TARGET_CACHE"/target . ) diff --git a/ci/channel-info.sh b/ci/channel-info.sh index 09a76d01cf..3f4dfc24bd 100755 --- a/ci/channel-info.sh +++ b/ci/channel-info.sh @@ -89,11 +89,17 @@ BETA_CHANNEL_LATEST_TAG=${beta_tag:+v$beta_tag} STABLE_CHANNEL_LATEST_TAG=${stable_tag:+v$stable_tag} -if [[ $CI_BRANCH = "$STABLE_CHANNEL" ]]; then +if [[ -n $CI_BASE_BRANCH ]]; then + BRANCH="$CI_BASE_BRANCH" +elif [[ -n $CI_BRANCH ]]; then + BRANCH="$CI_BRANCH" +fi + +if [[ $BRANCH = "$STABLE_CHANNEL" ]]; then CHANNEL=stable -elif [[ $CI_BRANCH = "$EDGE_CHANNEL" ]]; then +elif [[ $BRANCH = "$EDGE_CHANNEL" ]]; then CHANNEL=edge -elif [[ $CI_BRANCH = "$BETA_CHANNEL" ]]; then +elif [[ $BRANCH = "$BETA_CHANNEL" ]]; then CHANNEL=beta fi