-
Notifications
You must be signed in to change notification settings - Fork 327
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
Build ElmerIce in CI on Ubuntu and run tests #522
Conversation
…s for the full tests from #522.
I applied the patch currently for the full tests and created an elmerice test that is run on branch "elmerice" automatically (with max 4 mpi tasks). The thing is that the tests do not pass on any platform. Hence them not working is not a really good sign that something has been broken. A major reason for this is that elmerice tests are often more complicated (representing actual science) that the other tests. This has partly lead to that the cases are not always run and many have broken over the years. I would hope that we would fix the 3 cases before running elmerice in all tests. |
I added just elmerice tests, currently 10 fail on gcc. |
Thank you for adopting parts of the proposed changes. If you prefer not to accept the changes in this PR, I can still use them by repeatedly rebasing on different branches and running the CI in my fork. That makes it a bit awkward. But that might still work. Just to understand (for potential later PRs): What is your motivation to not run these tests on all platforms? |
The reason is that there are many failing elmerice tests currently. See This being the case all the tests would fail and we loose the success of tests as an indicator. Of course people can go and click which of the tests passed. Typically the history of elmerice tests is related to some thesis work while standard Elmer tests are more like unit tests. We are currently looking at the tests. So that at least the fast ones could be added to the general testing. elmerice as a community is small but active, whereas the general community is much larger but not as active. I don't think almost anybody does the computational glaciology on a windows PC, maybe Mac's are even more frequent. |
Thank you for clarifying. I understand that few users are using ElmerIce on Windows. Actually, it doesn't even build without some changes from this PR. But still it might be nice if there was an easy way to check that no new regressions are introduces while trying to address other issues. If you prefer to not let the CI run for ElmerIce currently, I'll try and at least separate the changes that are needed to build and run the tests locally from this PR and open a new one with just those changes. I hope that will be fine. (Edit: See #524.) |
It looks like some tests are stuck (indefinitely?) on macOS 14 (that is on Apple Silicon in case that should matter):
|
is there any output from the test available? |
The CI logs contain the following:
IIUC, that is only the output of ElmerGrid (which seems to have run successfully). There is no output at all from ElmerIce in the logs afaict. |
At least one nice thing with the redirect is that we can go to the tests directory and study the std out & err. Each test has them in its own test directory. I don't know whether this is one such reason. Maybe @juhanikataja has on idea? |
9307494
to
e11eafc
Compare
Manually rebased to resolve merge conflict. |
It looks like only one single test is failing currently with the tests on Ubuntu. Would it increase the chances of this PR being accepted if I focused on that platform first and deferred the other platforms to potentially later? |
22b7a7a
to
2aa20dc
Compare
It looks like ElmerIce cannot be built currently without MPI. |
This is not a practical limitation since all Elmer/Ice users probably need MPI. |
Also run tests with `elmerice-fast` label in CI.
e52c2cc
to
c40bed8
Compare
Thanks for clarifying. 👍 I pushed an additional commit that checks early on if MPI is enabled when ElmerIce should be built. I additionally modified the ForceToStress_parallel test to only run if 4 MPI processes are allowed. That test is currently failing in CI because the GitHub hosted Ubuntu runners have only two cores. Marking as ready for review. |
Push new policy to not evaluate quoted variable names in if-conditions. Support mpiexec in path with spaces.
Building ElmerIce requires that MPI is available. Fail early during configuration if it was disabled.
4798502
to
0754390
Compare
Some tests for ElmerIce set a number of parallel MPI processes. Check against the respective variables if running these tests will be possible.
Some runners failed with a strange error. (Maybe, an issue with the connection of some of GitHub's data centers?) This should be ready for being merged. |
This PR changes the build rules for the CI to build with ElmerIce on all platforms.
Also run the tests that have the label
elmerice-fast
in the CI.Additionally, some changes are made to allow building with the Ninja generator (avoid building the same Fortran module twice) and that allow running the ElmerIce tests on Windows (add paths to libraries to PATH environment variable).
Some tests are failing currently. I haven't looked into the reason why.