Apache Jackrabbit FileVault Jenkins Shared LIbrary

Clone this repo:
  1. 7b2e2f0 Support JDK22 by Konrad Windszus · 5 months ago master
  2. a95c917 Never execute ITs with main build environment by Konrad Windszus · 5 months ago
  3. 97a6b3c always use Java 17 for Sonarcloud analysis by Konrad Windszus · 8 months ago
  4. 8534ee2 enable "-e" for all Maven commands by Konrad Windszus · 10 months ago
  5. 0295978 always run Maven with "-e" to emit full stack traces in case of errors by Konrad Windszus · 10 months ago

Jenkins Shared Library

This library is used for all FileVault Jenkins builds and enabled on https://ci-builds.apache.org/job/Jackrabbit/job/filevault/

It follows the structure outlined at https://www.jenkins.io/doc/book/pipeline/shared-libraries/

It is supposed to be called in a Jenkinsfile like this

vaultPipeline('ubuntu', 11, '3', {
   vaultStageBuild(['Windows'], [8, 17], ['3.6.3'], 'apache_jackrabbit-filevault-package-maven-plugin') 
   vaultStageDeploy()
  }
)

The vaultPipeline step encapsulates the main build environment parameters: The first argument is the main node label to build with, the second one the main JDK version, third argument the main Maven version The fourth argument is a closure containing the actual stages where each may be one of

  1. vaultStageSanityCheck: a quick Maven build supposed to fail fast and executed before triggering expensive parallel builds with vaultStageBuild
  2. vaultStageBuild: the actual Maven build and SonarQube execution (the latter only for the main environment)
  3. vaultStageIT: an isolated execution of just the integration tests
  4. vaultStageDeploy: the stage to deploy the previously built Maven artifacts to the ASF Snapshot Repository (depends on 1.)

For the parametrisation of those individual stages refer the source code.