Skip to content

Normal incidence

Normal incidence #194

Workflow file for this run

# SPDX-License-Identifier: LGPL-3.0-or-later
# Copyright (C) 2023 Christopher Dilks
name: ci
on:
pull_request:
push:
branches:
- main
defaults:
run:
shell: bash
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
# BUILD ---------------------------------------------------------------------------
build_1:
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
repo: [EDM4eic, irt, epic]
steps:
- uses: actions/checkout@v3
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
setup: environ.sh
run: |
scripts/configure_CI.sh ${{matrix.repo}}
echo "[CI] BUILD REPOSITORY"
build.sh ${{matrix.repo}}
- name: tar_artifacts # workaround: tarball artifacts to preserve executable permissions
run: tar cvf artifacts.${{matrix.repo}}.tar prefix
- uses: actions/upload-artifact@v3
with:
name: build_1
retention-days: 1
path: artifacts.${{matrix.repo}}.tar
build_2:
needs:
- build_1
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
repo: [EICrecon, reconstruction_benchmarks]
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build_1
- name: untar_artifacts
run: |
ls artifacts.*.tar | xargs -I_ tar xvf _
rm -v artifacts.*.tar
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
setup: environ.sh
run: |
scripts/configure_CI.sh ${{matrix.repo}}
echo "[CI] BUILD REPOSITORY"
build.sh ${{matrix.repo}}
- name: tar_artifacts # workaround: tarball artifacts to preserve executable permissions
run: tar cvf artifacts.${{matrix.repo}}.tar prefix
- uses: actions/upload-artifact@v3
with:
name: build_2
retention-days: 1
path: artifacts.${{matrix.repo}}.tar
build_3:
needs:
- build_2
runs-on: ubuntu-latest
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build_1
- name: untar_artifacts
run: |
ls artifacts.*.tar | xargs -I_ tar xvf _
rm -v artifacts.*.tar
- uses: actions/download-artifact@v3
with:
name: build_2
- name: untar_artifacts
run: |
ls artifacts.*.tar | xargs -I_ tar xvf _
rm -v artifacts.*.tar
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
setup: environ.sh
run: |
scripts/configure_CI.sh EICrecon
echo "[CI] BUILD LOCAL CODE"
make
- name: tar_artifacts # workaround: tarball artifacts to preserve executable permissions
run: tar cvf build.tar prefix bin lib
- uses: actions/upload-artifact@v3
with:
name: build_3
retention-days: 1
path: build.tar
# PIPELINE: SIMULATION, RECONSTRUCTION, BENCHMARKS ---------------------------------
pipeline:
needs:
- build_3
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
id:
- fixed_p
- eta_scan
- p_scan_eta0
- p_scan_eta1
- p_scan_eta2
- p_scan_eta3
radiator: [aerogel, gas]
particle: [pi+, kaon+, proton]
include:
### default momentum for each radiator (for fixed momentum tests)
- { radiator: aerogel, momentum: 5.0 }
- { radiator: gas, momentum: 20.0 }
### fixed momentum tests
- { id: fixed_p, options: -t 1 -n 50 }
- { id: eta_scan, options: -t 6 -k 5 -n 30 }
### momentum scans at fixed pseudorapidities
- { id: p_scan_eta0, radiator: aerogel, options: -t 9 -k 5 -n 30 -b 1.6 }
- { id: p_scan_eta0, radiator: gas, options: -t 10 -k 5 -n 30 -b 1.6 }
- { id: p_scan_eta1, radiator: aerogel, options: -t 9 -k 5 -n 30 -b 2.0 }
- { id: p_scan_eta1, radiator: gas, options: -t 10 -k 5 -n 30 -b 2.0 }
- { id: p_scan_eta2, radiator: aerogel, options: -t 9 -k 5 -n 30 -b 2.7 }
- { id: p_scan_eta2, radiator: gas, options: -t 10 -k 5 -n 30 -b 2.7 }
- { id: p_scan_eta3, radiator: aerogel, options: -t 9 -k 5 -n 30 -b 3.5 }
- { id: p_scan_eta3, radiator: gas, options: -t 10 -k 5 -n 30 -b 3.5 }
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build_3
- name: untar_artifacts
run: |
tar xvf build.tar
rm -v build.tar
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
setup: environ.sh
run: |
scripts/configure_CI.sh reconstruction_benchmarks
echo "[CI] RUN SIMULATION:"
simulate.py ${{matrix.options}} -m ${{matrix.momentum}} -p ${{matrix.particle}}
# echo "[CI] EVENT DISPLAY SINGLES:"
# event_display d s out/sim.edm4hep.root n 0 0
# mv out/ev out/ev.singles
echo "[CI] EVENT DISPLAY INTEGRATED:"
event_display d s out/sim.edm4hep.root n
mv out/ev out/ev.all_events
echo "[CI] DRAW HITS:"
draw_hits d
echo "[CI] RECONSTRUCTION:"
recon.rb
echo "[CI] BENCHMARKS:"
benchmark.rb -b
- name: cull
run: |
rm -v out*/sim*.root
rm -v out*/rec*.root
- name: tree_artifacts
run: tree out
- name: rename_artifacts
run: |
mkdir -p pipeline/${{matrix.id}}/${{matrix.radiator}}/${{matrix.particle}}
mv -v out/* pipeline/${{matrix.id}}/${{matrix.radiator}}/${{matrix.particle}}/
- uses: actions/upload-artifact@v3
with:
name: pipeline
retention-days: 1
path: pipeline*/
# GEOMETRY ------------------------------------------------------------------------
geometry:
needs:
- build_3
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
include:
- { det: d, detector: DRICH }
- { det: p, detector: PFRICH }
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build_3
- name: untar_artifacts
run: |
tar xvf build.tar
rm -v build.tar
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
setup: environ.sh
run: |
scripts/configure_CI.sh none
echo "[CI] CREATE TGEO FILE:"
geometry.sh -${{matrix.det}} -o geo/${{matrix.detector}}_TGeo.root
echo "[CI] DUMP GEOMETRY CONSTANTS:"
search_compact_params.sh -e | grep ${{matrix.detector}} | tee geo/${{matrix.detector}}_constants.txt
- uses: actions/upload-artifact@v3
with:
name: geometry
retention-days: 1
path: geo*/
# EVENT VISUALIZATION -------------------------------------------------------------
### FIXME: not sure how to make these work on CI runners
### - locally:
### run `xvfb-run eic-shell` (to suppress graphics)
### call `exit | simulate.py -t1 -n1 -v -e svg`
###
# visual:
# needs:
# - build_3
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v3
# - uses: actions/download-artifact@v3
# with:
# name: build_3
# - name: untar_artifacts
# run: |
# tar xvf build.tar
# rm -v build.tar
# - uses: cvmfs-contrib/github-action-cvmfs@v3
# - uses: eic/run-cvmfs-osg-eic-shell@main
# with:
# platform-release: "jug_xl:nightly"
# setup: environ.sh
# run: |
# scripts/configure_CI.sh none
# echo "[CI] SET DEBUG MODE"
# scripts/set_optics_debug_mode.sh DRICH_debug_sector 1
# echo "[CI] REBUILD epic"
# build.sh epic
# echo "[CI] VISUALIZE:"
# exit | simulate.py -t1 -n1 -v -e pdf
# mv out out.visual
# - uses: actions/upload-artifact@v3
# with:
# name: visual
# retention-days: 1
# path: out.*/
# optics:
# needs:
# - build_3
# runs-on: ubuntu-latest
# strategy:
# fail-fast: true
# steps:
# - uses: actions/checkout@v3
# - uses: actions/download-artifact@v3
# with:
# name: build_3
# - name: untar_artifacts
# run: |
# tar xvf build.tar
# rm -v build.tar
# - uses: cvmfs-contrib/github-action-cvmfs@v3
# - uses: eic/run-cvmfs-osg-eic-shell@main
# with:
# platform-release: "jug_xl:nightly"
# setup: environ.sh
# run: |
# scripts/configure_CI.sh none
# echo "[CI] SET DEBUG MODE"
# scripts/set_optics_debug_mode.sh DRICH_debug_optics 1
# echo "[CI] REBUILD epic"
# build.sh epic
# echo "[CI] VISUALIZE:"
# exit | simulate.py -t12 -e pdf
# mv out out.optics
# - uses: actions/upload-artifact@v3
# with:
# name: optics
# retention-days: 1
# path: out.*/
# MISCELLANEOUS TESTS -------------------------------------------------------------
test_pixel_gaps:
needs:
- build_3
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build_3
- name: untar_artifacts
run: |
tar xvf build.tar
rm -v build.tar
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
setup: environ.sh
run: |
scripts/configure_CI.sh none
echo "[CI] RUN SIMULATION:"
simulate.py -s -t4 -n500
echo "[CI] RUN RECONSTRUCTION:"
recon.rb -c config/recon_digi_only.yaml
echo "[CI] DRAW PIXEL HITS:"
test_pixel_gap_cuts n
- name: tree_artifacts
run: tree out
- name: rename_artifacts
run: mv -v out tests
- uses: actions/upload-artifact@v3
with:
name: tests
retention-days: 1
path: tests*/
test_track_propagation:
needs:
- build_3
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: build_3
- name: untar_artifacts
run: |
tar xvf build.tar
rm -v build.tar
- uses: cvmfs-contrib/github-action-cvmfs@v3
- uses: eic/run-cvmfs-osg-eic-shell@main
with:
platform-release: "jug_xl:nightly"
setup: environ.sh
run: |
scripts/configure_CI.sh none
echo "[CI] RUN SIMULATION:"
simulate.py -t4 -k10 -n1
echo "[CI] RUN RECONSTRUCTION:"
recon.rb
echo "[CI] DRAW PIXEL HITS:"
root -b -q scripts/test_tracks.C
- name: tree_artifacts
run: tree out
- name: rename_artifacts
run: mv -v out tests
- uses: actions/upload-artifact@v3
with:
name: tests
retention-days: 1
path: tests*/
# ARTIFACT COLLECTION -------------------------------------------------------------
collect:
if: ${{ always() }}
needs:
- pipeline
- geometry
# - visual
# - optics
- test_pixel_gaps
- test_track_propagation
runs-on: ubuntu-latest
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v3
- uses: actions/download-artifact@v3
with:
name: pipeline
- uses: actions/download-artifact@v3
with:
name: geometry
# - uses: actions/download-artifact@v3
# with:
# name: visual
# - uses: actions/download-artifact@v3
# with:
# name: optics
- uses: actions/download-artifact@v3
with:
name: tests
- name: cull
run: |
find -name .keep | xargs rm -v
- uses: actions/upload-artifact@v3
with:
name: _RESULTS
retention-days: 14
path: |
pipeline*/
geo*/
tests*/