Apache Jackrabbit FileVault Jenkins Shared LIbrary

Clone this repo:
  1. a282614 support JDK20 and 21 by Konrad Windszus · 2 months ago master
  2. d36cbc0 improve readme by Konrad Windszus · 11 months ago
  3. 116f1bb add sanity check step (#3) by Konrad Windszus · 11 months ago
  4. 7e5d558 remove workaround related to "Unexpected CryptoAPI failure generating seed" by Konrad Windszus · 1 year, 3 months ago
  5. d243435 fix syntax error by Konrad Windszus · 1 year, 3 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') 

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.