Hello, I’m currently trying to setup SonarQube for orekit and I’m in the process of running the pipeline for ‘main’ to setup my project. I currently have a fork at ‘akilgore-he360.’
When I try to run the pipeline, I get failures on both the verify and changelog sections. I also set up a runner on my pc for this; not sure if that’s related, but since the website didn’t give any details about it I figured that I should mention it as a variable.
For the ‘verify,’ the unittests run w/o any failures, the issue comes after with the ‘edu.umd.cs.findbugs’ section. The numerous blocks of errors usually contain “java.lang.IllegalArgumentException: Unsupported class file major version 65” and/or “Unable to get XClass for org/orekit/…”.
The ‘changelog’ is very brief and fails with exit code 1. It fails to see the ‘cache’ and doesn’t recognize the ‘apk’ command.
This is generally due to a mismatch in Java version. I think class file version 65 corresponds to Java 21. So I assume the code has been compiled with Java 21 but in the verify step it is run with a much older Java version (8 or 11). You could try to compile your project with settings in the pom that will enforce generating binary class files compatible with Java 8.
But aren’t the compilation and CI settings dictated by the pom and CI files, which are from the repo branch? I’m running the pipeline directly on the ‘main’ branch that I pulled from orekit proper.
I’d expect that the success of the pipeline would be a function purely of the content of the branch.
The CI settings are set in the .gitlab-ci.yml which also references the .CI/maven-settings.xml file. The default image used in these settings is specified as image: registry.orekit.org/orekit/ci-utils/maven:3.9.6-eclipse-temurin-11. I think we set it up this way so it can run all maven plugins and can compile the library as we want it. I am not sure this works with custom forks without modifications.