Spack Gitlab Pipeline¶
This guide will discuss how we can leverage spack and gitlab to automate spack builds using continuous integration. If you are a developer using spack, or member of Application Development or Software Technology that wants to install your software product at NERSC, you should read this guide.
Please see https://software.nersc.gov/ecp/e4s-ci-pipelines/dashboard for list of E4S products with nightly builds. If you're interested in creating a spack pipeline for your E4S product, please create a ticket in help desk and mention name of product that you would like to install including any additional members that require access to gitlab project. The E4S CI pipelines are located in top-level project https://software.nersc.gov/ecp/e4s-ci-pipelines and each project must have a unique name. We recommend project names reflect the product name or name of spack package that you will be building.
There are several use-cases for the nightly build pipelines.
spack@develop: a build pipeline based on develop branch of spack to ensure your spack package works with the latest spack codebase.
Build a spec with unconstrained version such as
hdf5, fixed version
firstname.lastname@example.org, develop branch
email@example.com, or build with multiple compilers
- Spack Nightly Build: Nightly build for
hdf5using a fixed version of spack
- Spack CI Pipeline: spack pipeline based on
spack cicommand to parallelize spack builds across multi-stage gitlab job.
- E4S 21.02 Pipeline: This project contains spack configuration for e4s/21.02 that uses
spack cito distribute spack jobs across a multi stage gitlab job and push results to spack cdash (https://cdash.spack.io)
- E4S 20.10 Pipeline: Spack pipeline for e4s/20.10 stack.