SAND CI #42
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: SAND CI [dev] | |
run-name: SAND CI | |
on: [push] | |
env: | |
root-version: v6-32-02 | |
geant4-version: v10.7.4 | |
edepsim-version: 3.2.0 | |
clhep-version: CLHEP_2_4_7_1 | |
jobs: | |
Explore-GitHub-Actions: | |
runs-on: ubuntu-latest | |
container: almalinux/9-base | |
steps: | |
# # reference: https://docs.docker.com/engine/install/ubuntu/ | |
# # Set up Docker's apt repository. | |
# ## Add Docker's official GPG key: | |
# - run: sudo apt-get update | |
# - run: sudo apt-get install ca-certificates curl | |
# - run: sudo install -m 0755 -d /etc/apt/keyrings | |
# - run: sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc | |
# - run: sudo chmod a+r /etc/apt/keyrings/docker.asc | |
# ## Add the repository to Apt sources: | |
# - run: echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
# - run: sudo apt-get update | |
# # Install the Docker packages. | |
# - run: sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin | |
# # Verify that the Docker Engine installation is successful by running the hello-world image. | |
# - run: sudo docker run hello-world | |
# # Download AL9 image | |
# - run: docker pull almalinux/9-base | |
# # Install ROOT dependencies | |
# # https://root.cern/install/dependencies/ | |
# - run: yum install -y git make cmake gcc-c++ gcc binutils libX11-devel libXpm-devel libXft-devel libXext-devel python openssl-devel | |
# - run: yum install -y epel-release | |
# # - run: ls -lrt /etc/yum.repos.d | |
# # - run: yum config-manager --set-enabled powertools | |
# - run: yum -y install xrootd-client-devel xrootd-libs-devel gcc-gfortran pcre-devel mesa-libGL-devel mesa-libGLU-devel glew-devel ftgl-devel mysql-devel fftw-devel cfitsio-devel graphviz-devel libuuid-devel avahi-compat-libdns_sd-devel openldap-devel python-devel python3-numpy libxml2-devel gsl-devel readline-devel qt5-qtwebengine-devel R-devel R-Rcpp-devel R-RInside-devel | |
# Install ROOT v6.32.02 with the package provider yum | |
# - run: yum install -y epel-release | |
# - run: | | |
# yum install -y root-6.32.02-1.el9.x86_64 root-fumili-6.32.02-1.el9.x86_64 root-gdml-6.32.02-1.el9.x86_64 root-genetic-6.32.02-1.el9.x86_64 \ | |
# root-genvector-6.32.02-1.el9.x86_64 root-geom-6.32.02-1.el9.x86_64 root-geom-builder-6.32.02-1.el9.x86_64 root-geom-painter-6.32.02-1.el9.x86_64 \ | |
# root-geom-webviewer-6.32.02-1.el9.x86_64 root-graf-fitsio-6.32.02-1.el9.x86_64 root-graf-gpadv7-6.32.02-1.el9.x86_64 root-graf-gviz-6.32.02-1.el9.x86_64 \ | |
# root-graf-primitives-6.32.02-1.el9.x86_64 root-graf3d-csg-6.32.02-1.el9.x86_64 root-graf3d-eve-6.32.02-1.el9.x86_64 root-graf3d-eve7-6.32.02-1.el9.x86_64 \ | |
# root-graf3d-gl-6.32.02-1.el9.x86_64 root-graf3d-gviz3d-6.32.02-1.el9.x86_64 root-graf3d-x3d-6.32.02-1.el9.x86_64 root-gui-browsable-6.32.02-1.el9.x86_64 \ | |
# root-gui-browserv7-6.32.02-1.el9.x86_64 root-gui-builder-6.32.02-1.el9.x86_64 root-gui-canvaspainter-6.32.02-1.el9.x86_64 root-gui-fitpanel-6.32.02-1.el9.x86_64 \ | |
# root-gui-fitpanelv7-6.32.02-1.el9.x86_64 root-gui-html-6.32.02-1.el9.x86_64 root-gui-qt5webdisplay-6.32.02-1.el9.x86_64 root-gui-qt6webdisplay-6.32.02-1.el9.x86_64 \ | |
# root-gui-recorder-6.32.02-1.el9.x86_64 root-gui-webdisplay-6.32.02-1.el9.x86_64 root-gui-webgui6-6.32.02-1.el9.x86_64 root-hbook-6.32.02-1.el9.x86_64 \ | |
# root-hist-draw-6.32.02-1.el9.x86_64 root-hist-factory-6.32.02-1.el9.x86_64 root-histv7-6.32.02-1.el9.x86_64 root-html-6.32.02-1.el9.x86_64 \ | |
# root-io-dcache-6.32.02-1.el9.x86_64 root-io-sql-6.32.02-1.el9.x86_64 root-io-xml-6.32.02-1.el9.x86_64 root-io-xmlparser-6.32.02-1.el9.x86_64 \ | |
# root-minuit2-6.32.02-1.el9.x86_64 root-mlp-6.32.02-1.el9.x86_64 root-montecarlo-eg-6.32.02-1.el9.x86_64 root-montecarlo-pythia8-6.32.02-1.el9.x86_64 \ | |
# root-net-auth-6.32.02-1.el9.x86_64 root-net-davix-6.32.02-1.el9.x86_64 root-net-http-6.32.02-1.el9.x86_64 root-net-httpsniff-6.32.02-1.el9.x86_64 \ | |
# root-net-rpdutils-6.32.02-1.el9.x86_64 root-netx-6.32.02-1.el9.x86_64 root-proof-6.32.02-1.el9.x86_64 root-proof-bench-6.32.02-1.el9.x86_64 \ | |
# root-proof-player-6.32.02-1.el9.x86_64 root-proof-sessionviewer-6.32.02-1.el9.x86_64 root-quadp-6.32.02-1.el9.x86_64 python3-jupyroot-6.32.02-1.el9.noarch \ | |
# root-roofit-6.32.02-1.el9.x86_64 root-roofit-batchcompute-6.32.02-1.el9.x86_64 root-roofit-core-6.32.02-1.el9.x86_64 \ | |
# root-roofit-dataframe-helpers-6.32.02-1.el9.x86_64 root-roofit-hs3-6.32.02-1.el9.x86_64 root-roofit-jsoninterface-6.32.02-1.el9.x86_64 \ | |
# root-roofit-more-6.32.02-1.el9.x86_64 root-roostats-6.32.02-1.el9.x86_64 root-smatrix-6.32.02-1.el9.x86_64 root-spectrum-6.32.02-1.el9.x86_64 \ | |
# root-spectrum-painter-6.32.02-1.el9.x86_64 root-splot-6.32.02-1.el9.x86_64 root-sql-mysql-6.32.02-1.el9.x86_64 root-sql-odbc-6.32.02-1.el9.x86_64 \ | |
# root-sql-pgsql-6.32.02-1.el9.x86_64 root-sql-sqlite-6.32.02-1.el9.x86_64 root-testsupport-6.32.02-1.el9.x86_64 root-tmva-6.32.02-1.el9.x86_64 \ | |
# root-tmva-gui-6.32.02-1.el9.x86_64 root-tmva-python-6.32.02-1.el9.x86_64 root-tmva-sofie-6.32.02-1.el9.x86_64 root-fftw-6.32.02-1.el9.x86_64 \ | |
# root-tmva-sofie-parser-6.32.02-1.el9.x86_64 root-tmva-utils-6.32.02-1.el9.x86_64 root-tpython-6.32.02-1.el9.x86_64 root-tree-ntuple-utils-6.32.02-1.el9.x86_64 \ | |
# root-tree-viewer-6.32.02-1.el9.x86_64 root-tree-webviewer-6.32.02-1.el9.x86_64 root-unfold-6.32.02-1.el9.x86_64 root-unuran-6.32.02-1.el9.x86_64 \ | |
# root-xroofit-6.32.02-1.el9.x86_64 | |
# Install GEANT4 v4.11.2 with spack | |
## https://spack-tutorial.readthedocs.io/en/latest/tutorial_basics.html | |
# - run: yum install -y git | |
# - run: git clone --depth=100 --branch=releases/v0.22 https://github.com/spack/spack.git spack | |
# - run: cd ~/spack | |
# - run: ls -lrt spack | |
# - run: ls -lrt spack/share | |
# - run: ls -lrt spack/share/spack | |
# - run: . spack/share/spack/setup-env.sh; which spack | |
# - run: which spack | |
# - run: . spack/share/spack/setup-env.sh; spack install [email protected] | |
## https://github.com/spack/setup-spack | |
# - name: Set up Spack | |
# uses: spack/setup-spack@v2 | |
# with: | |
# ref: develop # Spack version (examples: develop, releases/v0.21) | |
# buildcache: true # Configure oci://ghcr.io/spack/github-actions-buildcache | |
# color: true # Force color output (SPACK_COLOR=always) | |
# path: spack # Where to clone Spack | |
# - run: spack install [email protected] | |
############################################################################################################################# | |
############################################################################################################################# | |
# Install epel repo | |
############################################################################################################################# | |
- name: Install epel repo | |
run: yum install -y epel-release | |
############################################################################################################################# | |
# Install ROOT dependencies | |
############################################################################################################################# | |
- name: Install ROOT dependencies | |
run: | | |
yum install -y git make cmake gcc-c++ gcc binutils libX11-devel libXpm-devel libXft-devel libXext-devel python openssl-devel \ | |
xrootd-client-devel xrootd-libs-devel gcc-gfortran pcre-devel mesa-libGL-devel mesa-libGLU-devel glew-devel ftgl-devel \ | |
fftw-devel cfitsio-devel libuuid-devel openldap-devel python-devel python3-numpy libxml2-devel gsl-devel readline-devel \ | |
qt5-qtwebengine-devel | |
############################################################################################################################# | |
# Install GEANT4 dependencies | |
############################################################################################################################# | |
## https://xerces.apache.org/xerces-c/download.cgi | |
- name: Install GEANT4 dependencies | |
run: yum install -y xerces-c xerces-c-devel expat expat-devel zlib zlib-devel | |
############################################################################################################################# | |
# Cache for CLHEP | |
############################################################################################################################# | |
- name: CLHEP cache | |
id: cache-clhep | |
uses: actions/[email protected] | |
with: | |
# A list of files, directories, and wildcard patterns to cache and restore | |
path: | | |
~/clhep | |
# An explicit key for restoring and saving the cache | |
key: clhep-${{env.clhep-version}} | |
############################################################################################################################# | |
# Cache for ROOT | |
############################################################################################################################# | |
- name: ROOT cache | |
id: cache-root | |
uses: actions/[email protected] | |
with: | |
# A list of files, directories, and wildcard patterns to cache and restore | |
path: | | |
~/root | |
# An explicit key for restoring and saving the cache | |
key: root-${{env.root-version}} | |
############################################################################################################################# | |
# Cache for GEANT4 | |
############################################################################################################################# | |
- name: GEANT4 cache | |
id: cache-geant4 | |
uses: actions/[email protected] | |
with: | |
# A list of files, directories, and wildcard patterns to cache and restore | |
path: | | |
~/geant4 | |
# An explicit key for restoring and saving the cache | |
key: geant4-${{env.geant4-version}} | |
############################################################################################################################# | |
# Cache for EDEPSIM | |
############################################################################################################################# | |
- name: EDEPSIM cache | |
id: cache-edepsim | |
uses: actions/[email protected] | |
with: | |
# A list of files, directories, and wildcard patterns to cache and restore | |
path: | | |
~/edepsim | |
# An explicit key for restoring and saving the cache | |
key: edepsim-${{env.edepsim-version}}-root-${{env.root-version}}-geant4-${{env.geant4-version}}-edepsim-${{env.edepsim-version}} | |
############################################################################################################################# | |
# Install CLHEP | |
############################################################################################################################# | |
- name: Install CLHEP ${{env.clhep-version}} | |
if: steps.cache-clhep.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p ~/clhep | |
cd ~/clhep | |
git clone --depth 1 --branch ${{env.clhep-version}} https://gitlab.cern.ch/CLHEP/CLHEP.git source | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=.. ../source | |
make -j8 install | |
############################################################################################################################# | |
# Install ROOT | |
############################################################################################################################# | |
- name: Install ROOT ${{env.root-version}} | |
if: steps.cache-root.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p ~/root | |
cd ~/root | |
git clone --depth 1 --branch ${{env.root-version}} https://github.com/root-project/root.git source | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=.. ../source | |
make -j8 install | |
############################################################################################################################# | |
# Install GEANT4 | |
############################################################################################################################# | |
## https://geant4-userdoc.web.cern.ch/UsersGuides/InstallationGuide/html/installguide.html | |
- name: Install GEANT4 ${{env.geant4-version}} | |
if: steps.cache-geant4.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p ~/geant4 | |
cd ~/geant4 | |
git clone --depth 1 --branch ${{env.geant4-version}} https://github.com/Geant4/geant4.git source | |
mkdir build | |
cd build | |
cmake -DCMAKE_INSTALL_PREFIX=.. -DGEANT4_USE_GDML=ON ../source | |
make -j8 install | |
############################################################################################################################# | |
# Install EDEPSIM | |
############################################################################################################################# | |
## https://github.com/ClarkMcGrew/edep-sim | |
- name: Install edepsim ${{env.edepsim-version}} | |
if: steps.cache-edepsim.outputs.cache-hit != 'true' | |
run: | | |
mkdir -p ~/edepsim | |
cd ~/edepsim | |
git clone --depth 1 --branch ${{env.edepsim-version}} https://github.com/ClarkMcGrew/edep-sim.git source | |
mkdir build | |
cd build | |
ls -lrt . | |
ls -lrt .. | |
ls -lrt ../.. | |
ls -lrt ../../geant4 | |
ls -lrt ../../root | |
cmake -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_PREFIX_PATH="../../geant4;../../root" ../source | |
make -j8 install | |
############################################################################################################################# | |
# Get sandreco | |
############################################################################################################################# | |
- name: Checkout sandreco | |
uses: actions/[email protected] | |
with: | |
# Relative path under $GITHUB_WORKSPACE to place the repository | |
path: sandreco/source | |
############################################################################################################################# | |
# Install sandreco | |
############################################################################################################################# | |
- name: Install sandreco | |
run: | | |
cd sandreco | |
mkdir build | |
cd build | |
ls -lrt . | |
ls -lrt .. | |
ls -lrt ../.. | |
cmake -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_PREFIX_PATH="../../geant4;../../root;../../edepsim" ../source | |
make -j8 install |