rspec/ci/cirrus-cache.sh

44 lines
848 B
Bash
Raw Permalink Normal View History

#! /bin/bash
set -euo pipefail
ACTION=${1}
CACHE_NAME=${2}
PATH_TO_CACHE=${3}
CACHE_URL="http://${CIRRUS_HTTP_CACHE_HOST}/${CACHE_NAME}"
TMP_PATH="/tmp/tmp-cache.tgz"
case "${ACTION}" in
download)
echo "Download cache with key ${CACHE_NAME} from ${CACHE_URL}"
curl --silent --show-error --fail --location --output "${TMP_PATH}" "${CACHE_URL}" || {
echo "Cache download failed" >&2
exit 0
}
du -hs "${TMP_PATH}"
tar -Pxzf "${TMP_PATH}"
rm "${TMP_PATH}"
;;
upload)
echo "Upload cache to ${CACHE_URL}"
tar -Pczf "${TMP_PATH}" "${PATH_TO_CACHE}"
du -hs "${TMP_PATH}"
curl --silent --show-error -X POST --data-binary "@${TMP_PATH}" "${CACHE_URL}" || {
echo "Cache upload failed" >&2
exit 0
}
;;
*)
echo "Unexpected cache ACTION: ${ACTION}" >&2
exit 1
;;
esac
echo "Cache ${ACTION}ed succeeded."