celeritas icon indicating copy to clipboard operation
celeritas copied to clipboard

Improve CI infrastructure

Open sethrj opened this issue 2 years ago • 2 comments

  • ~~Dockerhub is getting rid of the free teams tier but maybe our images will stay live?~~ Apparently docker is no longer ending it
  • Kokkos builds block the single HIP executor and each one of those seems to take 2–6 hours (@dalg24 ) whereas our pipelines take <10 minutes
  • Jenkins/blueocean annoys the shit out of me with the number of clicks it takes to get to a broken test and how it autorefreshes in the background
  • Our github pages website requires manual updating

Ideally we could:

  • [ ] Auto-publish documentation (moved from https://github.com/celeritas-project/celeritas/issues/592)
  • [ ] View results on CDash instead of jenkins/blue ocean
  • [x] Use github actions for better github integration (#1020)
  • [x] Not have to maintain our own machines for HIP and CUDA, nor to share a single machine with Kokkos

Resources:

TODO for Github CI:

  • [ ] Fix the issues with examples
    • [ ] asan build needs -fsanitize=address in downstream example
    • [ ] rocm+ndebug (static libs) fails to propagate the HIP library linkage
    • [x] SimpleOffload::Build crashes because ~~MTLogger is called before run manager completes initialization~~ default run manager is "task" which returns zero threads on the first call
    • [ ] VecGeom build on Ubuntu requires -Wl,--no-as-needed which we provide to Celeritas via CMAKE_{SHARED|EXE}_LINKER_FLAGS: maybe @pcanal 's RDC code needs to propagate these? Should this be vecgeom's responsibility?
  • [x] Use a shallow clone and git describe or some better way of fetching tags
  • [ ] Improve docker images
    • Add ccache to the build image and use it
    • Avoid custom user ID; GitHub requires root
    • Install all supported geant4 versions for a small build matrix
    • Fix entry point so that we don't have to manually source /etc/profile and re-export variables
  • [ ] Add separate build matrix for geant4 versions (to test minimum and maximum supported)
  • [x] Add ~~nightly~~ minimal build matrix for various compilers on raw hardware (earliest GCC through latest, multiple clang versions)
  • [ ] Add automatic clang formatting and/or fix?
  • [ ] Add documentation
  • [ ] Only do a simple build for "draft" PRs

sethrj avatar Mar 23 '23 18:03 sethrj

We are having issues with our AMD testing machines. We used to have 4 executors and we are down to 2 at the moment.

dalg24 avatar Mar 23 '23 19:03 dalg24

TODO:

sethrj avatar Nov 26 '23 22:11 sethrj