Continuous Integration: Tagging Jenkins Pipeline

From Gcube Wiki
Revision as of 21:55, 29 December 2019 by Manuele.simi (Talk | contribs) (Jenkins Pipeline Execution)

Jump to: navigation, search

gCubeTagging Pipeline Project

In gCube we use a Pipeline to tag all the repositories forming a gCube Release. The pipeline project is available at: https://jenkins.d4science.org/job/gCube-Tagging/


Parameters

Jenkins tagging pipeline params.png

Triggers

No triggers are defined because the pipeline is expected to be manually launched by the Release Manager:

Jenkins tagging pipeline triggers.png


It can be changed according to the release needs and the availability of a sufficient number of dedicate agents in Jenkins.

Git

The pipeline is maintained in a Git repository. This section connects the project to the Git repository.

Jenkins tagging pipeline git.png

Jenkins Pipeline Definition

Git Repository

The definition of the gCube release pipeline is maintained in this Git Repository: https://code-repo.d4science.org/gCubeCI/gCubeTagging.

Requirements on Jenkins

Jenkins Pipeline Execution

In order to use as input the following sample report available at https://code-repo.d4science.org/gCubeCI/gCubeRelease/raw/branch/master/releases/4.10.0/build_commits.12.csv:

GroupID,ArtifactID,Version,SCM URL,Build Number,Distribution URL,Filename,Packaging
org.gcube.tools,strategy-forward,1.1.0,https://code-repo.d4science.org/Playground/MergeStrategyFastForward,66f5fd1da37229615268955eeaf46870dd4d6576,...

We run the pipeline with the following parameters:

  • Type = TAG
  • gcube_release_number = 4.10.0
  • report_number = 12

On the jenkins console, we can see the messages logging the tagging activity on the repository:

Jenkins tagging pipeline console.png

On gitea, we can appreciate that the tag has been pushed;

Jenkins tagging pipeline gitea.png

On a local cloned repo, we can fetch the new tag:

Jenkins tagging pipeline repo.png

Tag Report

If the pipeline execution succeeds, it sends a tag report to the release manager. The report includes the following information for each Git repository tagged:

  • the artifact id
  • the artifact version
  • the SCM url
  • the commit tagged
  • the tag pushed to the repository

Here's an example of a tag report:

Jenkins-tag-report.png

Back to the CI guide.