In data analytics and high performance computing users often need very recent software that OS repositories do not provide or those are too old. Furhermore in multiuser system several versions of the same software are sometimes needed. science-build-rules is a python framework to fulfill these needs and to automate this deployment process in Linux systems. Different sofware version are automatically made available via modules system.
science-build-rules can be used for standalone, but for full CI/CD we have written git-based pipeline science-build-environment that uses science-build-rules as an engine.
This science-build-rules framwork has a buildrules-package that constains Builders for:
- Spack
- Singularity (work-in-progress)
- Anaconda (work-in-progress)
After the software is build successfully it is deployed using a Deployer. Currently there's only one Deployer: RsyncDeployer.
Installation can be done by running the following commands
git clone --recurse-submodules https://github.com/AaltoScienceIT/science-build-rules.git
cd science-build-rules
./install.shThis does the following things:
- Clones both the science-build-rules repo and the latest spack upstream repo.
- Installs miniconda to science-build-rules/conda
- Installs an environment called
buildrulesto the conda environment.
If you have your own anaconda setup you can run
conda env create -f environment.yamlto create the environment.
export PATH=$(pwd)/conda/bin:$PATH
source activate buildrules
source spack/share/spack/setup-env.sh
If you plan to build singularity images, make sure your user has right to singularity build.
All of the documentation is done by sphinx.
After installation:
cd docs
make htmlDocumentation can be found in docs/_build/html/index.html
After installation, you can find out what a test build does with:
python -m buildrules spack describe configs/example/spackTo do the build, you can run:
python -m buildrules spack build configs/example/spack
