Skip to content

Reworked Gitlab-CI#112

Merged
pearzt merged 8 commits intotudasc:develfrom
pearzt:ci/spack-based
Mar 4, 2026
Merged

Reworked Gitlab-CI#112
pearzt merged 8 commits intotudasc:develfrom
pearzt:ci/spack-based

Conversation

@pearzt
Copy link
Member

@pearzt pearzt commented Jan 29, 2026

With this PR, I propose a new, revised Gitlab-CI. These are the key changes:

  • Environment is managed using Spack
  • Designed to run on Lichtenberg's RHEL9 nodes
  • Extended matrix of tested GCC and LLVM versions
  • Improved CI runtimes, as dependencies (cxxopts, etc.) are managed by Spack and do not need to be rebuilt. Currently, a CI run takes around 6 minutes
  • Removed some CI jobs (stripped builds, mostly)
  • PGIS is no longer tested in the CI, as it is deprecated anyway
Screenshot_20260129_145716

@pearzt pearzt self-assigned this Jan 29, 2026
@TimHeldmann
Copy link
Member

I going through this PR together with @pearzt, I think it looks good to me.

There are two things that remain after this PR is merged:
One thing that still irks me, but should not be part of this PR, is how many different testing scripts we now have.
In the future I hope we could get some of these scripts either unified, or ported to ctest (or whatever we come up with).

Secondly, it seems there have been problems with compiling if SPD_LOG tries to compile with exceptions.
I have no idea why this would occur. I think this needs some further investigation.

Copy link
Member

@jplehr jplehr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I personally disagree with removing PGIS from the build. I understand that it is deprecated. The reason I disagree is because it is the one (only one?) tool that acts as a full end-to-end test for the library and package components.

I simply do not trust the rest of our testing enough.

If this is what we want to do, I won't get in the way, but I want to raise my concern.

@pearzt
Copy link
Member Author

pearzt commented Feb 16, 2026

@jplehr

I personally disagree with removing PGIS from the build. I understand that it is deprecated.

I excluded PGIS mostly due to it's dependence on a very old version of Extra-P which we would need to make available on Lichtenberg or build via build_submodules.sh (and sacrifice the short CI runtime). If someone wants to put in the work to make this work, I have nothing against it.

The reason I disagree is because it is the one (only one?) tool that acts as a full end-to-end test for the library and package components.

IMHO, PGIS's contribution to the overall MetaCG testing is small. This is kind of anecdotal, but I can't remember a CI failure over the last months that was caused by PGIS catching an error in the library.

@jplehr
Copy link
Member

jplehr commented Feb 23, 2026

IMHO, PGIS's contribution to the overall MetaCG testing is small. This is kind of anecdotal, but I can't remember a CI failure over the last months that was caused by PGIS catching an error in the library.

This is less about PGI's ability to uncover / detect bugs in the library and more to have something non-trivial that actually uses the library API. I don't want us to work on an API that is only covered with unit tests as I have seen an API deteriorate from usability despite best intentions, simply because no one actually used it.

So, if we think that with the increase in use of the API through the additional tools and downstream / out of tree consumers, I am less concerned about this point.

Note, however, that at least the out of tree consumers won't "catch" any weird decisions/directions we take/implement here. I am aware that having a larger consumer of the API does not guarantee a good API design, as I know of quirks we had in the graph lib in the presence of PGIS.

-DMETACG_BUILD_CGCOLLECTOR=ON
-DMETACG_BUILD_GRAPH_TOOLS=ON
-DMETACG_BUILD_CGPATCH=ON
-DCAGE_USE_METAVIRT=ON
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What are chances that tracking devel here breaks us for no reason?
At least that is my understanding from glimpsing at the CMake for this dependency.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that's indeed a risk. Maybe be should talk to @ahueck about defining a metavirt release that we could then reference. This is unrelated to the CI though, right?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes in the sense of the technical changes

Comment on lines +30 to +31
CC: clang
CXX: clang++
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this set the compilers for all the jobs? Wouldn't that ruin the matrix job purpose?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does set the compiler, but clang and clang++ refer to binaries in different LLVM installations, depending on which environment is active.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've just added another variant that uses GCC to build MetaCG

@jplehr
Copy link
Member

jplehr commented Feb 23, 2026

I also think we should build some different configurations, i.e., enable / disable some components to see if that still works as intended.

@pearzt pearzt requested a review from jplehr February 27, 2026 11:02
@pearzt pearzt merged commit a9df524 into tudasc:devel Mar 4, 2026
3 checks passed
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.

3 participants