-
Notifications
You must be signed in to change notification settings - Fork 2
204 lines (186 loc) · 10.4 KB
/
build-and-test-sandreco.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
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