Newer
Older
#!/usr/bin/env sh
set -o pipefail
source ${CI_PROJECT_DIR}/ci/stack_env.sh
for i in squashfs-cache buildcache spack-mirror
if [ ! -e ${CI_DATA_LT}/$i ]
mkdir -p ${CI_DATA_LT}/$i
image_name=${stack}-${environment}-${squash_id}-${CI_PIPELINE_ID}
# Check if MR as squashfs
sqfs_image=$(ls -t1 ${CI_DATA_LT}/squashfs-cache/${image_name}.sqfs 2> /dev/null | head -1)
if [ $? -ne 0 ]
then
echo "No MR ($squash_id-${CI_PIPELINE_ID}) squashfs found"
# look for base in the branch
sqfs_base_image=$(ls -t1 ${CI_DATA_LT}/squashfs-cache/${stack}-${environment}-${squash_id}.sqfs 2> /dev/null | head -1)
if [ $? -ne 0 ]
then
echo "No MR ($squash_id) squashfs found"
# look for base in default branch
sqfs_base_image=$(ls -t1 ${CI_DATA_LT}/squashfs-cache/${stack}-${environment}-${squash_base}*.sqfs 2> /dev/null | head -1)
if [ $? -ne 0 ]
then
echo "No default branch ($squash_base) squashfs found"
echo "Creating an empty one"
empty=$(mktemp -d)
sqfs_base_image="${CI_DATA_LT}/squashfs-cache/${stack}-${environment}-${squash_base}-initial.sqfs"
mksquashfs ${empty} ${sqfs_base_image}
else
echo "Found ${sqfs_base_image}"
fi
else
echo "Found ${sqfs_base_image}"
fi
set -o errexit
# Link MR sqaushfs to the one of default branch
sqfs_image=${CI_DATA_LT}/squashfs-cache/${image_name}.sqfs
cd ${CI_DATA_LT}/squashfs-cache
ln -sf $(basename ${sqfs_base_image}) $(basename ${sqfs_image})
cd -
echo "Linking ${sqfs_image} -> ${sqfs_base_image}"
if [ ${sqfs_image} != ${CI_DATA_LT}/squashfs-cache/${image_name}.sqfs ];
cd ${CI_DATA_LT}/squashfs-cache
ln -sf $(basname ${sqfs_image}) ${image_name}.sqfs
echo "Found ${sqfs_image}"
fi