Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimal CI setup #18

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open

Minimal CI setup #18

wants to merge 3 commits into from

Conversation

tlestang
Copy link

This adds a basic workflow that

  • Builds and caches OpenMPI.
  • Builds x3div with GCC.
  • Runs the default benchmark with a single process.

The workflow is described in .github/workflows/build.yml. See Understanding GitHub actions for an intro to writing workflows. Nothing special about this one, but this lays the groundwork for future infrastructure like unit tests. The workflow is triggered each time commits are pushed to a remote branch, running on Ubuntu 20.04.

AFAIK the only dependency for running the default benchamrk is OpenMPI. Installing it from the Ubuntu repos (apt install libopenmpi-dev or something similar) would simplify the workflow, but I figured we would prefer having control on the OpenMPI version we test against, as well as its compilation. However, we don't want to build OpenMPI each time, so the installed libraries and headers are cached. This is standard GitHub actions practice, see Caching dependencies to speed up workflows.

Limitations, potential improvements or further work

  • Maybe it would desirable to have more control on the OpenMPI build: version(s), compiler, compiler options. We would have to make sure the cache key depends on these, so that whenever one variable changes, so does the cache key and the build is triggered. Building MPI is probably here to stay, so maybe worth having a separate action to build it?
  • For now x3div is built with gcc only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant