Continuous Integration: Releases Maven

From Gcube Wiki
Revision as of 14:40, 29 May 2019 by Manuele.simi (Talk | contribs) (Created page with "= Maven Build Profiles = A gCube artifact can be built in 3 different situations: # on a personal (development) machine, likely after new code has been developed, by a gCube d...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Maven Build Profiles

A gCube artifact can be built in 3 different situations:

  1. on a personal (development) machine, likely after new code has been developed, by a gCube developer
  2. on a Jenkins slave, likely triggered by a new commit in the Git repository
  3. on a Jenkins slave, as part of the release pipeline

To support these scenarios, the following profiles are defined in the gCube maven-parent.

gcube-developer

  • Dependencies resolved against gcube-snapshots and gcube-releases
  • Snapshot artifacts deployed to gcube-snapshots
  • Deployments of releases artifacts are not permitted

jenkins-snapshots

  • Dependencies resolved against local-snapshots and gcube-releases
  • Snapshot artifacts installed to local-snapshots
  • Snapshot artifacts deployed to gcube-snapshots
  • Deployments of release artifacts are not permitted

jenkins-releases

  • Dependencies resolved against gcube-releases
  • Deployments of snapshot artifacts are not permitted
  • Release artifacts deployed to gcube-releases

dry-run

This profile disables all the deployments (regardless the maven commands) by skipping the deploy phase. It can be combined with the previous profiles

disable-java8-doclint

This profile sets an additional parameter for javadoc generation to disables the doclint. It avoids the build fails if formal/syntax errors are found in javadoc comments.

Maven Settings Files

The activation and switch among the build profiles is done through different settings.xml files available in the Configs project.

gcube-developer-settings.xml

   Used by: gCube Developer
   Installed on: development machine

jenkins-snapshots-settings.xml

   Used by: Jenkins jobs
   Installed on: slave node

jenkins-snapshots-dry-run-settings.xml

   Used by: Jenkins pipeline jobs
   When: To test a complete snapshot without deploying on a remote repo
   Installed on: slave node

jenkins-release-settings.xml

   Used by: Jenkins pipeline jobs
   Installed on: slave node

jenkins-release-dry-run-settings.xml

   Used by: Jenkins pipeline jobs
   When: To test a complete release without deploying on a remote repo
   Installed on: slave node

Build Configurations

CI Maven Repos.png