ci: run tests in containers
authorVincent Fu <vincent.fu@samsung.com>
Wed, 7 Aug 2024 21:17:29 +0000 (21:17 +0000)
committerVincent Fu <vincent.fu@samsung.com>
Wed, 21 Aug 2024 19:18:42 +0000 (19:18 +0000)
commit9b471ea6d7a5c33357c0c48314aa99de73baaab4
tree341c57df56a085d2a0a27504fbb14058a8332689
parent3671e62bc7caab2069a957af1342e027bc90303b
ci: run tests in containers

This patch adds GitHub Actions tests that run in containers to support
running tests on Debian and Fedora. Ubuntu tests are also run in
containers.

The io_uring (t0018) and command priority (in latency_percentiles.py)
tests are not supported in containers, so the Ubuntu container tests
cannot replace the tests running directly on GitHub Actions Ubuntu
runners.

This is a single uncomfortably large patch because all of these changes
are required for the tests to pass.

Here is a list of changes:

ci.yml:
  add GitHub Actions jobs for the different containers
actions-build.sh:
  use bash found in PATH to pick up bash 4 installed on macOS because
    bash 4 is required to match multiple patterns in a case statement
  only enable cuda when running on Ubuntu because Debian does not have
    the cuda package by default
actions-full-test.sh:
  skip io_uring and cmdprio tests when running on containers because
    these features are not supported
actions-install.sh:
  install nvidia-cuda-dev only on Ubuntu because this is not available
    for Debian by default
  install additional packages when running on Debian and Ubuntu
    containers. These are already installed in the GHA image.
  install packages for Fedora
  install bash via homebrew on macOS to get bash v4

Signed-off-by: Vincent Fu <vincent.fu@samsung.com>
.github/workflows/ci.yml
ci/actions-build.sh
ci/actions-full-test.sh
ci/actions-install.sh