Continuous Integration: Releases Manager

From Gcube Wiki
Revision as of 03:40, 31 May 2019 by Manuele.simi (Talk | contribs) (Monitor the Execution)

Jump to: navigation, search

Responsibilities

The Release Manager is in charge of:

Jenkins Activities

Launch the Pipeline

In Jenkins:

  1. select the gCubeRelease project
  2. on the left side, click on 'Build with Parameters'
  3. select the type of build we want to generate in the choice menu
  4. click on the 'Build' button

CI ReleaseManager launch.png

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
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:

CI Pipeline Output.png

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:

CI Pipeline Steps.png

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:

CI Pipeline Execution.png


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.