40 lines
1.2 KiB
Bash
40 lines
1.2 KiB
Bash
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
eval "$(ejson2env .buildkite/env/secrets.ejson)"
|
|
|
|
# Ensure the pattern "+++ ..." never occurs when |set -x| is set, as buildkite
|
|
# interprets this as the start of a log group.
|
|
# Ref: https://buildkite.com/docs/pipelines/managing-log-output
|
|
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
|
|
MAX_CACHE_SIZE=18 # gigabytes
|
|
|
|
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 "--- $CARGO_TARGET_CACHE is too large, removing it"
|
|
rm -rf "$CARGO_TARGET_CACHE"
|
|
fi
|
|
else
|
|
echo "--- $CARGO_TARGET_CACHE not present"
|
|
fi
|
|
|
|
mkdir -p "$CARGO_TARGET_CACHE"/target
|
|
rsync -a --delete --link-dest="$CARGO_TARGET_CACHE" "$CARGO_TARGET_CACHE"/target .
|
|
|
|
# Don't reuse BPF target build artifacts due to incremental build issues with
|
|
# `std:
|
|
# "found possibly newer version of crate `std` which `xyz` depends on
|
|
rm -rf target/bpfel-unknown-unknown
|
|
)
|