OGS5: Jenkins builds not available anymore (ogs5py problem)

Hey there,

ogs5py provides a routine to download a pre-compiled OGS5 executable for the desired system:

For now I relied on the provided downloads at: OpenGeoSys-5
and the jenkins site: https://jenkins.opengeosys.org/job/ufz/job/ogs5/job/master/

The jenkins site was used to get nightly builds and different build options but unfortunately this site is down right now.

Is there a plan to provide these again? Since GitHub actions now provides Windows, MacOS and Linux support, one could use this service to build OGS5 on all platforms.

Cheers, Sebastian

Yes, we shutoff the Jenkins server some time ago and also do not have any nightly builds for OGS-5 at the moment. If you have some experience with GitHub actions feel free to implement these for OGS-5!

In the following is a list of available binaries on https://ogsstorage.blob.core.windows.net/binaries/ogs5/:

Hey there,
started a PR here: WIP: add CI workflow to compile OGS5 on Win/Linux/MacOS by MuellerSeb · Pull Request #164 · ufz/ogs5 · GitHub
artifacts can be found here for example: CI: use package target for artifacts · MuellerSeb/ogs5@400b671 · GitHub

Some questions:

  • Clang is not able to compile on MacOS due to some template classes. Did you use GCC there in the past as well? (I fixed it by using gcc-9)
  • should there be different artifacts for different compilers (gcc 7,9, 10)? Just noted that the ubuntu 20.04 artifact is not working on my 18.04 system. I guess due to different gcc versions (7 on my system, 9 on the Github-actions image)

Cheers, Sebastian

Hi Sebastian,

thanks a lot, this is a really nice contribution!

Looking at the former Jenkins config it looks like there was no Mac build (although I personally build it on one and cannot remember if it worked on clang). I could build on macOS with the following change:

modified: FEM/rf_mmp_new.cpp
@ FEM/rf_mmp_new.cpp:5746 @ void CMediumProperties::SetDistributedELEProperties(string file_name)
    int k;

    // default: scalar property
-    unsigned int n_components{1};
+    unsigned int n_components = 1;

    cout << " SetDistributedELEProperties: ";

Feel free to integrate this patch.

Yes due to different glibc’s binaries are not portable between e.g. Ubuntu releases. Just create different artifacts as you are already doing.

For better compatibility we could also create (Singularity) container images (I could add this in the future).

Just let me know when your PR is ready and I will happily merge it.