This task is to review how to enable CI in SeExpr. The purpose of this is to start digging into the codebase and modernize it, while also ensuring I do not introduce any bugs or crashes.
The original repository already includes a basic testing suite. However, it lacks instrumentation to automatically run e.g.
- ASAN
- clang-tidy
- the test suite itself
- etc.
Hosting alternatives include:
- using Sysadmin's shared runners
- using a remote fork in Github and enable Actions/Travis there
Locally, I've been playing with Actions and the Academy Software Foundation's docker images, and they are *really* easy to use. The best image for my purpose is ci-vfxall, which includes
- Python,
- boost::python,
- Qt (no PyQt5, since the ASWF is of the PySide team),
- Clang,
- GCC,
- and LLVM.
Instrumenting the checks there is also extremely easy, and I can also take advantage of code quality tools, specifically CodeQL.
As for the shared runners, this can also be achieved (with a reasonable amount of YAML-fu, I think?); however, getting code quality results may be more difficult.
Note that I have not mentioned the sysadmin/ci-tooling images because I want something closer to the original intent of this code (to run in available production configurations). For this purpose, the ASWF Docker images have quite the variety of library versions and compilers.