GRTLCollaboration / GRTeclyn

Port of GRChombo to AMReX - under development!
BSD 3-Clause "New" or "Revised" License
4 stars 2 forks source link

Add CI to run tests on GPUs #45

Closed mirenradia closed 7 months ago

mirenradia commented 7 months ago

This uses GitLab's support for running CI for GitHub repositories and adds a GitLab CI pipeline to run the the tests automatically on new pushes and pull requests to this repo. The way this works is as follows:

  1. A new commit is pushed to this repo.
  2. A mirror repository hosted on the UIS GitLab instance pulls the new commit and triggers the CI pipeline. There is a web hook in this repo which tells the mirror repo (via the GitHub integration) about new pushes and pull requests.
  3. The CI runs on a GitLab Runner which is hosted on Arcus (Research Computing Services's OpenStack-based IaaS platform). It uses the SSH executor to automatically SSH to a service account on CSD3 and run the script there.
  4. The script builds the tests on the login node and then uses srun to launch them on the ampere partition on CSD3 using Paul Shellard's SHELLARD-SL3-GPU allocation.
  5. The status of the pipeline appears on GitHub next to the commit or PR.

Note that GitLab pipelines are disabled on PRs from external forks for security reasons.

I have also modified the default test output by decreasing the default AMReX verbosity (modifiable with the --amrex-verbosity flag) and passing -d yes to the Catch2 executable to print out the duration of each test.

This resolves #44.

Some details about the set up can be found on this page (only accessible inside RCS but keeping here for future reference).

julianakwan commented 7 months ago

Nice! I ran the GPU Build workflow and all the tests successfully completed.