User Tools

Site Tools


wiki:jenkins

This is an old revision of the document!


Jenkins

Jenkins is an extensible open source continuous integration server. See the details from here.

OPNFV Jenkins

Linux Foundation provides Jenkins for OPNFV. You can access it from this link.

Basic Jenkins Setup

Certain things need to be set up in order to use Jenkins in CI. Below list contains some of the obvious ones.

Creating Service/Functional Account and Setting it up

This is used for connecting slaves to Jenkins. Whatever account is used for connecting slave(s) then used for executing jobs/build.

This account can also be used for running verification jobs on Git commits and giving +1/-1 if certain commit fails passing certain checks such as commit message format, PEP8, and so on. (Account name could be octopus.)

Setting up Credentials/Creating Domains

This defines who can do what and which credential is valid for which domain and so on.

Adding Slaves

These are the servers where the jobs/builds are executed.

Creating Jobs

These are the jobs that build software, test it and so on. Creating/Configuring/Verifying Jenkins Jobs

Installing Plugins

With plugins new functionality can be added to Jenkins in order to handle SCM stuff, create pipelines, throttle builds, logging/graphing, and so on.

Plugins

Jenkins has hundreds of different plugins that can be installed in order to extend its functionality. One thing to keep in mind is installing huge number of plugins increases the load on the Jenkins master.

Full list of plugins can be seen from this link.

Slave Handling

SCM/Git/Gerrit

Jobs/Builds

Artifact Handling

Notification/Email/Visualization

Logging and Graphing

An easy option to get started with graphing performance and event logs from test runs is to just use Jenkins with some plugins.

The advantage to having Jenkins do this is the data is readily available for each job. As the number of jobs increased and mining, trends, and more sophisticated numerical data analysis and logging investigation is required the data can also be pushed to external databases such as splunk and logstash.

This plugin provides generic plotting (or graphing) capabilities in Jenkins.

This plugin will plot one or more single values variations across builds in one or more plots. Plots for a particular job (or project) are configured in the job configuration screen, where each field has additional help information. Each plot can have one or more lines (called data series). After each build completes the plots' data series latest values are pulled from Java properties file(s), CSV file(s), or XML file(s) via an XPath (which you should have generated during the build) somewhere below you workspace. Data for each plot is stored in a CSV file within the job's root project directory.

It can generate various kind of plots, including Area, Bar, Line, Stacked Bar, Waterfall…

Here is an example of the plots generated by this plugin:

See more details here: https://wiki.jenkins-ci.org/display/JENKINS/Plot+Plugin

wiki/jenkins.1425062380.txt.gz · Last modified: 2015/02/27 18:39 by Ray Paik