SAND CI #33
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: v11.2.2 | |
edepsim-version: 3.2.0 | |
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 | |
- name: SAND dependencies cache | |
uses: actions/[email protected] | |
with: | |
# A list of files, directories, and wildcard patterns to cache and restore | |
path: | | |
~/root | |
~/geant4 | |
~/edepsim | |
# An explicit key for restoring and saving the cache | |
key: root-${{env.root-version}}-geant4-${{env.geant4-version}}-edepsim-${{env.edepsim-version}} | |
# # An ordered list of keys to use for restoring stale cache if no cache hit occurred for key. Note `cache-hit` returns false in this case. | |
# restore-keys: # optional | |
# # The chunk size used to split up large files during upload, in bytes | |
# upload-chunk-size: # optional | |
# # An optional boolean when enabled, allows windows runners to save or restore caches that can be restored or saved respectively on other platforms | |
# enableCrossOsArchive: # optional, default is false | |
# # Fail the workflow if cache entry is not found | |
# fail-on-cache-miss: # optional, default is false | |
# # Check if a cache entry exists for the given input(s) (key, restore-keys) without downloading the cache | |
# lookup-only: # optional, default is false | |
# # Run the post step to save the cache even if another step before fails | |
# save-always: # optional, default is false | |
# Install ROOT | |
- name: Install ROOT ${{env.root-version}} | |
timeout-minutes: 60 | |
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 -j16 install | |
# Install GEANT4 | |
## https://geant4-userdoc.web.cern.ch/UsersGuides/InstallationGuide/html/installguide.html | |
- name: Install GEANT4 ${{env.geant4-version}} | |
timeout-minutes: 60 | |
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 -j16 install | |
# Install edepsim | |
## https://github.com/ClarkMcGrew/edep-sim | |
- name: Install edepsim ${{env.edepsim-version}} | |
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 -j16 install | |