|
|
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 =
| |
− | 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 developer
| |
− | # on a Jenkins slave, likely triggered by a new commit in the Git repository
| |
− | # on a Jenkins slave, as part of the release pipeline
| |
| | | |
− | To support these scenarios, the following [https://maven.apache.org/guides/introduction/introduction-to-profiles.html|build profiles] are defined in the gCube [[Maven_Configuration#Maven_Parent|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 [[Continuous_Integration:_Releases#Maven_Build_Profiles|build profiles]] is done through different settings.xml files available in the [https://code-repo.d4science.org/gCubeSystem/Configs/src/branch/master/Maven/1.1.0/ 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 =
| |
− | [[File:CI_Maven_Repos.png|800px]]
| |
| = Jenkins Pipeline = | | = Jenkins Pipeline = |
| | | |
Releases in gCube are managed with Jenkins.
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.