Continuous Deployment (CD)
Spheral uses Gitlab CI to continuously deploy installations of the risky tag, and release tags to Livermore Computing (LC) machines.
At any one time a developer/user will able to module load Spheral/...
to their environment.
- On LC systems we maintain:
Spheral/riskySpheral/2025.12.0Spheral/2025.06.1Spheral/2025.01.0Spheral/2024.06.1Spheral/2024.01.1Spheral/2023.06.0
Spheral/risky
risky will always sit somewhere between develop and the latest release on
LC systems. This version of Spheral is made available for users between
releases and although it is not as up to date as develop, should still be
considered expermintal and used with caution.
The risky module can be updated by developers by deleting the current risky
tag and pointing it at a new commit. After deletion, the creation of a new tag
will generate a pipeline that must be manually run by a developer through the
gitlab CI interface.
Warning
Spheral/risky will move between releases. This means if API breaking
changes are pushed to develop/risky then user will need to updated scripts
to be compatible with the new API.
Versioned Releases
Release builds are installed to LC systems in a similar fashion to risky.
When a new release tag is created a pipeline in Gitlab CI will be generated. It
will not automatically start and will need to be manually initialized by a
developer with the appropriate permissions.
Spheral-dev-pkg
As an artifact of our CD pipeline we generate a tar file with the naming format:
$SYS_TYPE-spheral-dev-pkg-$SPHERAL_REVISION_STRING.tar.gz
This tar file contains everything to build and install Spheral on the given $SYS_TYPE (e.g. toss_4_x86_64_ib). It contains:
A
spackbuild cache of all the pre-built binaries for Spheral TPLs.A
spackmirror of all TPL tars to enable re-compilation at a later date.spackbootstrap dependencies for use of libraries such asclingo.Spheral source code.
After extracting the dev-pkg tar on the target system a user can install
spheral using scritps/lc/install-from-dev-pkg.sh.
install-from-dev-pkg.sh
This simple script will install Spheral from an unzipped dev-pkg file to the
given location. There are a few environment variables that can be used to
configure this script.
SPACK_URL (default : https://github.com/spack/spack)
Spack location. A local clone of the spack repository can be used as well (e.g.
SPACK_URL=file:///usr/mydir/spack).
BUILD_ALLOC
Useful for schedule based systems ( e.g. BUILD_ALLOC="salloc -N 1 --exclusive").
SCRIPT_DIR
If the Spheral scripts have been moved, override this option.
DEV_PKG_SPEC
The spack spec to target (e.g. on TOSS4 DEV_PKG_SPEC=spheral%gcc@10.3.1+mpi~caliper~network).
INSTALL_DIR
The installation directory for Spheral to live.
Note
Users will need to generate module files, symlinks and set permissions manually
after a successful installation of Spheral from a dev-pkg tar.