rspec/ci/cirrus-cache.sh

44 lines
736 B
Bash

#! /bin/bash
set -euo pipefail
ACTION=${1}
CACHE_NAME=${2}
PATH_TO_CACHE=${3}
CACHE_KEY=${CACHE_NAME}
DEFAULT_CACHE_KEY=${CACHE_NAME}
CACHE_URL=http://${CIRRUS_HTTP_CACHE_HOST}/${CACHE_KEY}
TMP_PATH=/tmp/tmp-cache.tgz
case "${ACTION}" in
download)
echo "Download cache with key ${CACHE_KEY}"
echo " -> try ${CACHE_URL}"
curl -sfSL -o ${TMP_PATH} ${CACHE_URL} || {
echo "Cache download failed";
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 -s -X POST --data-binary @${TMP_PATH} ${CACHE_URL}
;;
*)
echo "Unexpected cache ACTION: ${ACTION}"
exit 1
;;
esac