Skip to content
Snippets Groups Projects
prepare_squashfs.sh 1.99 KiB
Newer Older
set -o nounset
source ${CI_PROJECT_DIR}/ci/stack_env.sh

Nicolas Richart's avatar
Nicolas Richart committed
mkdir -p ${CI_DATA_ST}/overlayfs
Nicolas Richart's avatar
Nicolas Richart committed
mkdir -p ${CI_DATA_ST}/homes
for i in squashfs-cache buildcache spack-mirror
    then
image_name=${stack}-${environment}-${squash_id}-${CI_PIPELINE_ID}

sqfs_image=$(ls -t1 ${CI_DATA_LT}/squashfs-cache/${image_name}.sqfs 2> /dev/null | head -1)
    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)
        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
    # Link MR sqaushfs to the one of default branch
    sqfs_image=${CI_DATA_LT}/squashfs-cache/${image_name}.sqfs
Nicolas Richart's avatar
Nicolas Richart committed
    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 ];
Nicolas Richart's avatar
Nicolas Richart committed
    then
        ln -sf $(basname ${sqfs_image}) ${image_name}.sqfs
Nicolas Richart's avatar
Nicolas Richart committed
        cd
    fi