Skip to content

BUILD AND TEST SANDRECO #7

BUILD AND TEST SANDRECO

BUILD AND TEST SANDRECO #7

name: BUILD AND TEST SANDRECO
run-name: BUILD AND TEST SANDRECO
on:
workflow_run:
workflows: [SAND GEOMETRY]
types: [completed]
env:
root-version: v6-32-02
geant4-version: v10.7.4
edepsim-version: 3.2.0
clhep-version: CLHEP_2_4_7_1
jobs:
Build-sandreco:
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
container: almalinux/9-base
steps:
#############################################################################################################################
# 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
#############################################################################################################################
# Get SHA of HEAD develop
#############################################################################################################################
- name: Get SHA of HEAD develop
id: develop_sha
run: echo "sha=$(git ls-remote https://github.com/DUNE/sandreco.git --refs refs/heads/develop | awk -F' ' '{print $1}')" >> $GITHUB_OUTPUT
#############################################################################################################################
# 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}}
#############################################################################################################################
# Cache for SANDRECO
#############################################################################################################################
- name: SANDRECO cache
id: cache-sandreco
uses: actions/[email protected]
with:
# A list of files, directories, and wildcard patterns to cache and restore
path: |
sandreco
# An explicit key for restoring and saving the cache
key: sandreco-${{steps.develop_sha.outputs.sha}}-edepsim-${{env.edepsim-version}}-root-${{env.root-version}}-geant4-${{env.geant4-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 -DGEANT4_INSTALL_DATA=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
cmake -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_PREFIX_PATH="~/geant4;~/root" ../source
make -j8 install
#############################################################################################################################
# Get sandreco
#############################################################################################################################
- name: Checkout sandreco
if: steps.cache-sandreco.outputs.cache-hit != 'true'
uses: actions/[email protected]
with:
# Relative path under $GITHUB_WORKSPACE to place the repository
path: sandreco/source
#############################################################################################################################
# Install sandreco
#############################################################################################################################
- name: Install sandreco
if: steps.cache-sandreco.outputs.cache-hit != 'true'
run: |
cd sandreco
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=.. -DCMAKE_PREFIX_PATH="~/geant4;~/root;~/edepsim" ../source
make -j8 install
#############################################################################################################################
# Run edepsim
#############################################################################################################################
# - name: Run edepsim
# run: |
# export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:~/geant4/lib64:~/root/lib:~/edepsim/lib
# export PATH=${PATH}:~/edepsim/bin
# source ~/geant4/bin/geant4.sh
# edep-sim -C -g ~/dunendggd/SAND_opt3_STT1.gdml -o SAND_opt3_STT1.edep.root macro.mac