As you probably know, we recently migrated the Orekit continuous integration platform to Gitlab CI/CD, SonarQube and Nexus. Indeed, we want to eventually get rid of Jenkins, with whom we are not satisfied for several reasons. As the Hipparchus source code is hosted on Github, the continuous integration can not rely on Gitlab CI/CD (this would only be possible with Gitlab Enterprise Edition). So we had to consider another platform, modern and well integrated to Github. Fortunately, the Github platform was enriched a few months ago with a continuous integration tool: Github Actions.
To evaluate the potential of this service and to verify that it was possible to do what I wanted to propose to you, I used it on my Hipparchus fork.
Here is an example of Github Actions workflow execution:
The CI workflow is defined in the .github/workflows/maven.yml file (on the develop branch).
I used SonarQube to replace the Jenkins dashboard and provide you with a better code quality monitoring:
I have tried to reproduce in SonarQube the existing Checkstyle and SpotBugs rules and exceptions, but there are certainly some adjustments to be made.
I then added the publication of the artifacts in Orekit’s Nexus repository:
The artifacts corresponding to Hipparchus official versions will be published in the “maven-releases” repository. Those corresponding to the development branch (snapshots) are published in the “maven-snapshots” repository.
Would you be willing to migrate the Hipparchus continuous integration platform to Github Actions, SonarQube and Nexus OSS? Would you have anything to change in this platform and its current configuration? Would you prefer another solution?
All comments and questions are welcome.