Difference between revisions of "Continuous Integration: Releases"

From Gcube Wiki
Jump to: navigation, search
(Maven Build Profiles)
 
(9 intermediate revisions by 2 users not shown)
Line 5: Line 5:
 
A dedicate Jenkins pipeline has been created to manage full builds of all the Jenkins jobs and to release the artifacts (i.e. deploy them on the Maven Release Repository) when successful. The pipeline is configured with a set of Maven build profiles to accommodate the different build scenarios.
 
A dedicate Jenkins pipeline has been created to manage full builds of all the Jenkins jobs and to release the artifacts (i.e. deploy them on the Maven Release Repository) when successful. The pipeline is configured with a set of Maven build profiles to accommodate the different build scenarios.
  
= Maven Build Profiles =
+
* [[Continuous_Integration:_Releases_Maven|Maven]]
A gCube artifact can be built in 3 different situations:
+
** [[Continuous_Integration:_Releases_Maven#Maven_Build_Profiles|Maven Build Profiles]]
# on a personal (development) machine, likely after new code has been developed, by a gCube developer
+
** [[Continuous_Integration:_Releases_Maven#Maven_Settings_Files|Maven Settings Files]]
# on a Jenkins slave, likely triggered by a new commit in the Git repository
+
** [[Continuous_Integration:_Releases_Maven#Build_Configurations|Build Configurations]]
# on a Jenkins slave, as part of the release pipeline
+
* [[Continuous_Integration:_Releases_Jenkins_Pipeline|Jenkins Pipeline]]
 +
** [[Continuous_Integration:_Releases_Jenkins_Pipeline#Jenkins_Pipeline_Project|Pipeline Project]]
 +
** [[Continuous_Integration:_Releases_Jenkins_Pipeline#Jenkins_Pipeline_Definition|Pipeline Definition]]
 +
* [[Continuous_Integration:_Releases_Manager|Activities of Release Manager]]
 +
** [[Continuous_Integration:_Developer|Activities of Developer]]
  
To support these scenarios, the following [https://maven.apache.org/guides/introduction/introduction-to-profiles.html|build profiles] are in the gCube maven-parent
 
  
https://code-repo.d4science.org/gCubeSystem/maven-parent
+
''Back to the [[Continuous_Integration_procedure_(2019) | CI guide]].''
  
== gcube-developer ==
+
[[Category:Continuous_Integration]]
* 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 the deployment of the artifacts.
+
 
+
== 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.
+
 
+
= Jenkins Pipeline =
+
 
+
= Jenkins Pipeline Definition =
+
 
+
= Activities of Release Manager =
+
 
+
''Back to the [[Continuous_Integration_procedure_(2019) | CI guide]].''
+

Latest revision as of 18:05, 3 October 2019

Releases in gCube are managed with Jenkins.

Single Jenkins jobs are triggered at each commit in the master branch for the Continuous Integration. Their outcomes are deployed on the Maven Snapshot Repository.

A dedicate Jenkins pipeline has been created to manage full builds of all the Jenkins jobs and to release the artifacts (i.e. deploy them on the Maven Release Repository) when successful. The pipeline is configured with a set of Maven build profiles to accommodate the different build scenarios.


Back to the CI guide.