Review enabling CI for SeExpr
Open, WishlistPublic

Description

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.

lsegovia created this task.Sep 14 2020, 7:01 PM
lsegovia triaged this task as Wishlist priority.

Hi, @lsegovia!

I think you can easily use ci-vfxall docker image for running CI on Jenkins. Running all the test suites you listed on Jenkins doesn't look as a problem. Why cannot you use Jenkins for that?

Hi @dkazakov!

I never answered this! It's pretty simple, my dislike of Jenkins is too much. I'd probably prefer to use Gitlab CI for that, though I'm not sure if sysadmin would want several 4GB Docker images being shuttled every now and then.

Locally, I "run" CI via https://github.com/nektos/act against the CY2019 platform onwards. (Things would be so easy if we had GH Actions...)

Hi, @lsegovia!

As far as I know, at the current state, sysadmins do everything to avoid adding any new images to Jenkins (due to the migration process). Though with the latest updates from them, you can try to install that into GitLab CI directly. It is kind of allowed now