Difference between revisions of "Continuous Integration: Releases Maven"

From Gcube Wiki
Jump to: navigation, search
(Build Configurations)
Line 60: Line 60:
  
 
= Build Configurations =
 
= Build Configurations =
 +
By combining the build profiles in the appropriate settings file, we support the following interactions with the Maven Repositories:
 
[[File:CI_Maven_Repos.png|800px]]
 
[[File:CI_Maven_Repos.png|800px]]
  
 
''Back to the [[Continuous_Integration_procedure_(2019) | CI guide]].''
 
''Back to the [[Continuous_Integration_procedure_(2019) | CI guide]].''

Revision as of 15:47, 29 May 2019

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

By combining the build profiles in the appropriate settings file, we support the following interactions with the Maven Repositories: CI Maven Repos.png

Back to the CI guide.