ci: Add OLCF GitLab-CI
This adds gitlab-ci using the batch runners on the OLCF ascent system. I've tried to tie it in to your existing infrastructure with ctest scripts. A few caveats to note in this:
- Currently only a GCC + Cuda + Spectrum MPI build
- Easy enough to add other configurations, i.e. XL + Cuda + Spectrum MPI
- At OLCF the compute nodes don't have access to the work directory used by the GitLab runners. To account for this the jobs create their own work space on the shared files system based on pipeline ID and build name and then clone into that from the local checkout provided by the GitLab runner.
git-lfssupport in the build as of yet. It's being loaded as an environment module in the build stage but the necessary pieces need to be manually added to get the LFS objects fetched and into the new workspace.
- Since the build jobs run on a shared login node the auto-detection of build parallelism has been augmented to allow a manual override instead of always using the number of CPU cores.
- In order to explicitly configure the MPI environment to use
jsrunand not rely on auto-detection I've added a mechanism, to have a per-build-name pre-defined cache file.
The builds are hosted on https://code.olcf.gov/ecpcitest/vtk-m