Difference between revisions of "Continuous Integration: Releases Manager"

From Gcube Wiki
Jump to: navigation, search
(Responsibilities)
Line 18: Line 18:
  
 
<nowiki>https://code-repo.d4science.org/gCubeCI/gCubeRelease/raw/branch/master/releases/<gcube_release_version>/tags.<report_number>.csv</nowiki>.
 
<nowiki>https://code-repo.d4science.org/gCubeCI/gCubeRelease/raw/branch/master/releases/<gcube_release_version>/tags.<report_number>.csv</nowiki>.
 
= 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 ==
 
 
In Jenkins:
 
# select the [[Continuous_Integration:_Releases_Jenkins_Pipeline#gCubeRelease_Pipeline_Project| 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
 
 
[[File:CI_ReleaseManager_launch.png|600px]]
 
 
== 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 release 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:
 
 
[[File:CI_Pipeline_Output.png|600px]]
 
 
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:
 
 
[[File:CI Pipeline Steps.png|800px]]
 
 
== 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:
 
 
[[File:CI_Pipeline_Execution.png|600px]]
 
 
= Pipeline Activities =
 
The Release Manager has to work on the [[Continuous_Integration:_Releases_Jenkins_Pipeline#Jenkins_Pipeline_Configuration|Jenkins Pipeline configuration]] according to each release's requirements. Here are some sample activities:
 
* add/remove groups in the YAML configuration
 
* keep the agent label in sync with Jenkins config
 
  
  

Revision as of 04:40, 30 December 2019

Responsibilities

The Release Manager is in charge of:

  • Declaring when a gCube release is open and when it is closed
  • Preparing the release file for each new gCube release
  • Launching the build of the gCube Release Pipeline
  • Storing the commits report generated by the gCube Release Pipeline in its Gitea repository
  • Launching the build of the gCube Tagging Pipeline
  • Storing the tag report generated by the gCube Tagging Pipeline in its Gitea repository

Pipeline Reports on Git

The Release Manager is responsible for manually pushing the reports generated by the jenkins pipelines to Git.

The build commits report generated by the gCube Release Pipeline must be stored in the pipeline git repository as

https://code-repo.d4science.org/gCubeCI/gCubeRelease/raw/branch/master/releases/<gcube_release_version>/build_commits.<report_number>.csv.

The tag report generated by the gCube Tagging Pipeline must be stored in the pipeline git repository as

https://code-repo.d4science.org/gCubeCI/gCubeRelease/raw/branch/master/releases/<gcube_release_version>/tags.<report_number>.csv.


Back to the CI guide.