Difference between revisions of "Continuous Integration: Releases Manager"
Manuele.simi (Talk | contribs) (→Responsibilities) |
Manuele.simi (Talk | contribs) (→Jenkins Activities) |
||
Line 6: | Line 6: | ||
= Jenkins Activities = | = Jenkins Activities = | ||
+ | == Configure the Pipeline == | ||
+ | A [[Continuous_Integration:_Releases_Jenkins_Pipeline#Jenkins_Pipeline_Configuration| release file]] must be created for each new Jenkins release. | ||
+ | |||
== Launch the Pipeline == | == Launch the Pipeline == | ||
Line 12: | Line 15: | ||
# on the left side, click on 'Build with Parameters' | # on the left side, click on 'Build with Parameters' | ||
# select the type of build we want to generate in the choice menu | # select the type of build we want to generate in the choice menu | ||
+ | # input the release version to build (must match the release file name and the version reported in the file itself). E.g. 4.14.5. | ||
# click on the 'Build' button | # click on the 'Build' button | ||
Line 24: | Line 28: | ||
* RELEASE-DRY-RUN | * RELEASE-DRY-RUN | ||
: build release artifacts, install the artifacts in a local repo, do not deploy | : build release artifacts, install the artifacts in a local repo, do not deploy | ||
+ | * RELEASE-STAGING | ||
+ | : build release artifacts, install the artifacts in a local repo, deploy to the ''gcube-staging-jenkins'' Maven Repository | ||
* RELEASE | * RELEASE | ||
: build snapshot artifacts, install the artifacts in a local repo, deploy the artifacts to the ''gcube-releases'' Maven Repository | : build snapshot artifacts, install the artifacts in a local repo, deploy the artifacts to the ''gcube-releases'' Maven Repository | ||
Line 42: | Line 48: | ||
[[File:CI_Pipeline_Execution.png|600px]] | [[File:CI_Pipeline_Execution.png|600px]] | ||
− | |||
= Pipeline Activities = | = Pipeline Activities = |
Revision as of 04:39, 4 September 2019
Contents
Responsibilities
The Release Manager is in charge of:
- Declaring when a gCube release is open and when it is closed
- Configuring and launching the build of the gCube Pipeline
- Maintaining the Pipeline Definition
Jenkins Activities
Configure the Pipeline
A release file must be created for each new Jenkins release.
Launch the Pipeline
In Jenkins:
- select the gCubeRelease project
- on the left side, click on 'Build with Parameters'
- select the type of build we want to generate in the choice menu
- input the release version to build (must match the release file name and the version reported in the file itself). E.g. 4.14.5.
- click on the 'Build' button
Type of Build
The Pipeline project can be launched in 4 different ways (Type parameter):
- SNAPSHOT-DRY-RUN (default)
- build snapshot artifacts, install the artifacts in a local repo, do not deploy
- SNAPSHOT
- build snapshot artifacts, install the artifacts in a local repo, deploy the artifacts to the gcube-snapshots Maven Repository
- RELEASE-DRY-RUN
- build release artifacts, install the artifacts in a local repo, do not deploy
- RELEASE-STAGING
- build release artifacts, install the artifacts in a local repo, deploy to the gcube-staging-jenkins Maven Repository
- RELEASE
- build snapshot artifacts, install the artifacts in a local repo, deploy the artifacts to the gcube-releases Maven Repository
The idea behind these builds is that the Release Manager can test the full pipeline execution with the DRY-RUN builds. Once all the projects in the build work, the SNAPSHOT or RELEASE build can be launched to effectively deploy the artifacts on the remote Maven Repository.
Monitor the Execution
As any other job execution, the pipeline can be monitored step-by-step in the Console Output page of the ongoing build:
In addition, the Pipeline steps page (also accessible from the build page) shows the various steps and links to the other builds executed within the pipeline:
Stages Report
At least one “stage” section must be defined on the “stages” section of the pipeline. It will contain the work that the pipeline will execute. Stages must be named accordingly since Jenkins will display each of them on its interface, as shown here:
Pipeline Activities
The Release Manager has to work on the Jenkins Pipeline definition according to each release's requirements. Here are some sample activities:
- add/remove groups
- add/remove jobs to/from groups
- keep the agent label in sync with Jenkins config
- keep maven jdk in sync with Jenkins config
Back to the CI guide.