Skip to content

Improve build and tests and add CI #36

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

Merged
merged 160 commits into from
Mar 13, 2025
Merged

Improve build and tests and add CI #36

merged 160 commits into from
Mar 13, 2025

Conversation

tdrwenski
Copy link
Collaborator

@tdrwenski tdrwenski commented Feb 25, 2025

The goal of this PR is to improve the build process, tests, and add continuous integration (CI) so the build and tests can be automatically run on LC machines for each PR.

Build

  • uses CMake instead of make and BLT (RADIUSS project) to make CMake config easy
  • (optionally) Spack to make it easier to build Quandary with different architectures. Spack can install necessary libraries liek petsc and slepsc for you, and makes it easy to have multiple versions and variants of these. Spack can also build Quandary itself by using CMake. Spack is especially useful for running the CI.

Tests

  • run existing regression tests using pytest. This has nice built in options for running the tests. The comparison between output and expected output is done using a pandas comparison with a tolerance.

  • Updates to existing tests:

    • add quotes around column names and update output accordingly
    • Stefanie added/removed some tests to make sure all test cases were covered

CI

  • uses radiuss-spack-configs and uberenv (RADIUSS projects) to help set this up
  • Add continuous integration pipeline in GitLab (mirror of this repo) so that build and tests can be automatically run on different LC platforms.
  • This includes running with different compilers (clang, gcc), different architectures, and GPU versions of PETc for Rocm and cuda (may be useful in the future)
  • This pipeline will be run on every (non-draft) PR

Many files were changed (mostly related to the tests) so I realize it is a bit hard to review. I would especially appreciate feedback on the following:

  • README.md and tests/README.md
  • Testing the steps in the README such as building quandary, and running the tests, and running the python interface to see if the steps are clear

…d result directories so its easier to clean these
tdrwenski and others added 27 commits March 3, 2025 09:26
* Removed all Slepsc mentions
* Improve introduction section
* Reorganize content building without spack.
@tdrwenski tdrwenski merged commit 2ac75cd into main Mar 13, 2025
5 checks passed
@tdrwenski tdrwenski deleted the improve-build-test-ci branch March 13, 2025 23:31
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.

4 participants