If a pull request against the current state of the deployment fails, e.g., during concretization, the following steps may help debug issues.
- Check out the pull request in your local Spack setup and set some
references to the failed stage of the deployment and the pull request
number:
export PR_NUMBER=1234 export PR_STAGE=applications export PR_BASE=$(readlink -f /gpfs/bbp.cscs.ch/ssd/apps/hpc/jenkins/pulls/${PR_NUMBER}/deploy/${PR_STAGE}/latest)
- Move your own configuration files out of the way. If the official
instructions are following, one can use:
for fn in ${SPACK_ROOT}/etc/spack/*.yaml; do mv ${fn}{,.old}; done
- Copy the environment that the CI is attempting to build somewhere under
your control:
If the concretization of the build environment fails, it is easier to re-use the installation directory of the CI for packages that have been built already:
cp -R ${PR_BASE}/data/build_environment .
Otherwise, for build issues, the above will not work due to the required write permissions. Create a new installation directory instead:export SPACK_INSTALL_PREFIX=${PR_BASE}
export SPACK_INSTALL_PREFIX=${PWD}/build_environment/install
- Run the concretization, using the configuration of the CI:
spack -C ${PR_BASE}/data/.spack -D build_environment concretize -f
- Fix any issue arising, re-iterate starting from 4.
- Clean everything up:
rm -rf build_environment for fn in ${SPACK_ROOT}/etc/spack/*.yaml.old; do mv ${fn} ${fn%%.old}; done