File indexing completed on 2026-09-16 09:33:56
0001
0002 set -Euo pipefail
0003 trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
0004 IFS=$'\n\t'
0005
0006
0007 : "${EIC_SHELL_CVMFS_PREFIX:=/cvmfs/singularity.opensciencegrid.org}"
0008
0009 echo "::group::Checking if there is a working CVMFS mount"
0010
0011 if [ ! -d "${EIC_SHELL_CVMFS_PREFIX}" ]; then
0012 echo "The directory ${EIC_SHELL_CVMFS_PREFIX} cannot be accessed!"
0013 echo "Make sure you are using the cvmfs-contrib/github-action-cvmfs@v2 action"
0014 exit 1
0015 fi
0016
0017 echo "CVMFS mount present"
0018 echo "::endgroup::"
0019
0020 if [ -z "${SANDBOX_PATH}" ]; then
0021 SANDBOX_PATH="${EIC_SHELL_CVMFS_PREFIX}/${EIC_SHELL_ORGANIZATION}/${EIC_SHELL_PLATFORM_RELEASE}"
0022 if [[ "${EIC_SHELL_RELEASE}" == *"dev"* ]]; then
0023 SANDBOX_PATH="${EIC_SHELL_CVMFS_PREFIX}/${EIC_SHELL_ORGANIZATION}/${EIC_SHELL_PLATFORM}:${EIC_SHELL_RELEASE}"
0024 fi
0025 fi
0026
0027 echo "Full EIC shell path is ${SANDBOX_PATH}"
0028
0029 if [ ! -d "${SANDBOX_PATH}" ]; then
0030 echo "Did not find an EIC shell under this path!"
0031 exit 1
0032 fi
0033
0034 echo "#!/usr/bin/env bash
0035 export LC_ALL=C
0036 set -Euo pipefail
0037 trap 's=\$?; echo \"\$0: Error on line \"\$LINENO\": \$BASH_COMMAND\"; exit \$s' ERR
0038 IFS=\$'\n\t'
0039 set -e
0040
0041 ${SETUP:+source ${SETUP}}
0042
0043 ${RUN}
0044 " > ${GITHUB_WORKSPACE}/action_payload.sh
0045 chmod a+x ${GITHUB_WORKSPACE}/action_payload.sh
0046
0047 v=${APPTAINER_VERSION}
0048
0049 echo "::group::Installing Apptainer ${v}"
0050 for deb in "apptainer_${v/v/}_amd64.deb" "apptainer-suid_${v/v/}_amd64.deb"; do
0051 mkdir -p ${APPTAINER_DEB_CACHE}
0052 if [ ! -s ${APPTAINER_DEB_CACHE}/${deb} ] ; then
0053 wget --tries 5 --output-document ${APPTAINER_DEB_CACHE}/${deb} https://github.com/apptainer/apptainer/releases/download/${v}/${deb}
0054 echo "cache-update=true" >> $GITHUB_OUTPUT
0055 fi
0056 sudo rm -f /var/lib/man-db/auto-update
0057 sudo cp ${APPTAINER_DEB_CACHE}/${deb} /var/cache/apt/archives/${deb}
0058 sudo apt-get -q -y install /var/cache/apt/archives/${deb}
0059 sudo touch /var/lib/man-db/auto-update
0060 done
0061 echo "::endgroup::"
0062
0063 worker=$(echo ${SANDBOX_PATH} | sha256sum | awk '{print$1}')
0064 if apptainer instance list | grep ${worker} ; then
0065 echo "Reusing exisitng Apptainer image from ${SANDBOX_PATH}"
0066 else
0067 echo "Starting Apptainer image from ${SANDBOX_PATH}"
0068 apptainer instance start --bind /cvmfs --bind ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} ${SANDBOX_PATH} ${worker}
0069 fi
0070
0071 echo "####################################################################"
0072 echo "###################### Executing user payload ######################"
0073 echo "VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV"
0074
0075 apptainer exec instance://${worker} /bin/bash -c "cd ${GITHUB_WORKSPACE}; ./action_payload.sh"