Add automated tests for various SCR builds
There are several different ways to build SCR, each with numerous configuration options. While it could be overkill to account for every possible combination, we should be sure it builds basic builds for each method (spack, CMake with separate components, CMake with release dist tarball).
We should also include specific build configurations that we know are important to key users.
- Create release tarball of develop and test build from that release "dist" tarball:
cd dist
./builddist develop
mkdir temp
cd temp
tar -zxf ../scr-top-develop.tgz
cd scr-top-develop
mkdir build
cd build
cmake ..
make -j install
- Build of a release tarball as static only (no libscr.so, only libscr.a):
same as above
cmake -DBUILD_SHARED_LIBS=OFF ..
@robertkb , I'd like to add a few more builds into our gitlab test suite. I've listed the first two above. I see our gitlab yaml file, and I can imagine adding those is straight-forward.
Do we have a write up on how to run and check the results of our gitlab tests?
I've not done that before.
@robertkb , I've added you to this one, since you'll at least be involved. Though I don't mind taking a stab, and it would be good for me to learn the ropes of gitlab testing.
I've got a dist tarball test in my source tree. I need to run through basic verification again, then put up a PR. The static-only test should be simple too.
Thanks @robertkb
@robertkb , do you have the PR ready to go on this one?
Some tests are broken currently, but the PR is up. https://github.com/LLNL/scr/pull/415
A complete list of compilers that are used within LC here: https://rzlc.llnl.gov/gitlab/wsc-dev-env/compilers
@adammoody do you think it's important to build shared libs and static libs separately? That is, one build does shared only, and a separate one does static only? Otherwise, it is possible to build both static and shared at the same time.
I think we'll at least want a static-only build. A number of applications disable shared libs, and we've seen cases where our static-only build fails, but the shared+static build works. I think people who enable shared libs builds don't bother to also disable the static lib.