{"id":7180,"date":"2018-01-24T10:21:08","date_gmt":"2018-01-24T02:21:08","guid":{"rendered":"http:\/\/rmohan.com\/?p=7180"},"modified":"2018-01-24T12:16:30","modified_gmt":"2018-01-24T04:16:30","slug":"jenkins-on-centos-7","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=7180","title":{"rendered":"Jenkins on CentOS 7"},"content":{"rendered":"<section class=\"full-article\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-sm-offset-2 col-sm-8\">\n<article id=\"post-4699\" class=\"post-4699 post type-post status-publish format-standard has-post-thumbnail hentry category-tutorials\">Jenkins is a free and open source CI (Continuous Integration) tool which is written in JAVA. Jenkins is widely used for project development, deployment, and automation. Jenkins allows you to automate the non-human part of the whole software development process. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase and RTC, and can execute Apache Ant, Apache Maven and sbt based projects as well as arbitrary shell scripts and Windows batch commands. The creator of Jenkins is Kohsuke Kawaguchi.[3] Released under the MIT License.Jenkins&#8217; security depends on two factors: 1. access control 2. protection from external threats.<\/p>\n<ol>\n<li>Access control can be customized via two ways, user authentication and authorization.<\/li>\n<li>Protection from external threats such as CSRF attacks and malicious builds is supported as well.<\/li>\n<\/ol>\n<h2>Requirements<\/h2>\n<p>It does not require any special kind of hardware, you&#8217;ll only need a CentOS 7 server and a root user access over it. You can switch from non root user to root user using <code>sudo -i<\/code> command.<\/p>\n<h2>Update System<\/h2>\n<p>It is highly recommended to install Jenkins on a freshly updated server. To upgrade available packages and system run below given command and it&#8217;ll do the job for you.<\/p>\n<p><code>yum -y update<\/code><\/p>\n<h2>Install Java<\/h2>\n<p>Before going through the installation process of Jenkins you&#8217;ll need to set up Java Virtual Machine or JDK to your system. Simply run following command to install Java.<\/p>\n<p><code>yum -y install java-1.8.0-openjdk.x86_64<\/code>Once installation is finished you can check the version to confirm the installation, to do run following command.<\/p>\n<p><code>java -version<\/code>The above command will tell you about the installation details of java. By running the above command you should see the following result on your terminal screen.<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">openjdk version <span class=\"token string\">\"1.8.0_131\"<\/span>\r\nOpenJDK Runtime Environment <span class=\"token punctuation\">(<\/span>build 1.8.0_131-b12<span class=\"token punctuation\">)<\/span>\r\nOpenJDK 64-Bit Server VM <span class=\"token punctuation\">(<\/span>build 25.131-b12, mixed mode<span class=\"token punctuation\">)<\/span>\r\n<\/code><\/pre>\n<p>Next, you&#8217;ll need to setup two environment variables <code>JAVA_HOME<\/code> and <code>JRE_HOME<\/code> and to do so run following commands one by one.<\/p>\n<p><code>cp \/etc\/profile \/etc\/profile_backup<\/code><code>echo 'export JAVA_HOME=\/usr\/lib\/jvm\/jre-1.8.0-openjdk' | sudo tee -a \/etc\/profile<\/code><code>echo 'export JRE_HOME=\/usr\/lib\/jvm\/jre' | sudo tee -a \/etc\/profile<\/code><code>source \/etc\/profile<\/code>Finally print them for review using following commands.<\/p>\n<p><code>echo $JAVA_HOME<\/code>You should see following output.<\/p>\n<pre class=\" language-bash\"><code class=\" language-bash\">\/usr\/lib\/jvm\/jre-1.8.0-openjdk\r\n<\/code><\/pre>\n<p><code>echo $JRE_HOME<\/code><\/p>\n<\/article>\n<\/div>\n<p><strong>shell scirpt<\/strong><\/p>\n<\/div>\n<\/div>\n<p>#!\/bin\/sh<\/p>\n<p>yum install -y java<\/p>\n<p>wget -O \/etc\/yum.repos.d\/jenkins.repo http:\/\/pkg.jenkins-ci.org\/redhat\/jenkins.repo<\/p>\n<p>rpm &#8211;import https:\/\/jenkins-ci.org\/redhat\/jenkins-ci.org.key<\/p>\n<p>yum install -y jenkins<\/p>\n<p>yum install -y git<\/p>\n<p>service jenkins start\/stop\/restart<\/p>\n<p>chkconfig jenkins on<\/p>\n<\/section>\n<p>&nbsp;<\/p>\n<p>java<\/p>\n<p>java -version<\/p>\n<p>java -jar jenkins.war &#8211;httpPort=8080<\/p>\n<p># get jenkin-cli<\/p>\n<p>wget http:\/\/localhost:8080\/jnlpJars\/jenkins-cli.jar<\/p>\n<p># jenkin-cli install plugin<\/p>\n<p>java -jar jenkins-cli.jar -s http:\/\/localhost:8080 install-plugin checkstyle cloverphp crap4j dry htmlpublisher jdepend plot pmd violations warnings xunit &#8211;username=yang &#8211;password=lljkl<\/p>\n<p># safe restart<\/p>\n<p>java -jar jenkins-cli.jar -s http:\/\/localhost:8080 safe-restart &#8211;username=yang &#8211;password=lljkl<\/p>\n<section class=\"full-article\">\n<div class=\"container\">\n<div class=\"row\">\n<div class=\"col-sm-offset-2 col-sm-8\">\n<article id=\"post-4699\" class=\"post-4699 post type-post status-publish format-standard has-post-thumbnail hentry category-tutorials\">\n<h2>Install Jenkins<\/h2>\n<p>We have installed all the dependencies required by Jenkins and now we are ready to install Jenkins. Run following commands to install latest stable release of Jenkins.<\/p>\n<p><code>wget -O \/etc\/yum.repos.d\/jenkins.repo https:\/\/pkg.jenkins.io\/redhat-stable\/jenkins.repo<\/code><code>rpm --import https:\/\/pkg.jenkins.io\/redhat-stable\/jenkins.io.key<\/code>The above two commands will add the jenkins repository and also import the key. If in case you have previously imported the key from Jenkins then the <code>rpm --import<\/code> will fail because you already have a key. Please ignore that and move on.<\/p>\n<p>Now run following command to install Jenkins on your server.<\/p>\n<p><code>yum -y install jenkins<\/code>Next, you&#8217;ll need to start Jenkins services and set it to run at boot time and to do so use following commands.<\/p>\n<p><code>systemctl start jenkins.service<\/code><code>systemctl enable jenkins.service<\/code><\/p>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<article>\n<div id=\"page\" class=\"hfeed site\">\n<div id=\"main\" class=\"site-main\">\n<div id=\"primary\" class=\"content-area\">\n<div id=\"content\" class=\"site-content\" role=\"main\">\n<article id=\"post-2498\" class=\"post-2498 post type-post status-publish format-standard hentry category-java category-maven tag-centos tag-ci tag-continuous-integration tag-devops tag-howto tag-jenkins tag-linux tag-programming tag-software-develement\">\n<div class=\"entry-content\">\n<h3>Connecting to a Git Repo<\/h3>\n<p>You will probably want to connect to a git repository next. This is also somewhat dependent on the operating system you use, so I provide the steps to do this on CentOS as well:<\/p>\n<ul>\n<li>Install git<\/li>\n<\/ul>\n<pre>sudo yum install git<\/pre>\n<ul>\n<li>Generate an SSH key on the server<\/li>\n<\/ul>\n<pre>ssh-keygen -t rsa<\/pre>\n<ul>\n<li>When prompted, save the SSH key under the following path (I got this idea from reading the comments <a href=\"https:\/\/mohitgoyal.co\/2017\/02\/27\/configuring-ssh-authentication-between-github-and-jenkins\/\">here<\/a>)<\/li>\n<\/ul>\n<pre>\/var\/lib\/jenkins\/.ssh<\/pre>\n<ul>\n<li>Assure that the .ssh directory is owned by the Jenkins user:<\/li>\n<\/ul>\n<pre>sudo chown -R jenkins:jenkins \/var\/lib\/jenkins\/.ssh<\/pre>\n<ul>\n<li>Copy the public generated key to your git server (or add it in the GitHub\/BitBucket web interface)<\/li>\n<li>Assure your git server is listed in the known_hosts file. In my case, since I am using BitBucket my \/var\/lib\/jenkins\/.ssh\/known_hosts file contains something like the following<\/li>\n<\/ul>\n<pre>bitbucket.org,104.192.143.3 ssh-rsa [...]<\/pre>\n<ul>\n<li>You can now create a new project and use Git as the SCM. You don\u2019t need to provide any git credentials. Jenkins pulls these automatically form the \/var\/lib\/jenkins\/.ssh directory. There are good instructions for this available <a href=\"https:\/\/www.thegeekstuff.com\/2016\/10\/jenkins-git-setup\/\">here<\/a>.<\/li>\n<\/ul>\n<h3>Connecting to GitHub<\/h3>\n<ul>\n<li>In the Jenkins web interface, click on <strong>Credentials<\/strong> and then select the Jenkins Global credentials. Add a credential for GitHub which includes your GitHub username and password.<\/li>\n<li>In the Jenkins web interface, click on <strong>Manage Jenkins<\/strong> and then on <strong>Configure System<\/strong>. Then scroll down to GitHub and then under GitHub servers click the Advanced Button. Then click the button Manage additional GitHub actions.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2018\/01\/app.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7181\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2018\/01\/app.png\" alt=\"\" width=\"788\" height=\"229\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/app.png 788w, https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/app-300x87.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/app-768x223.png 768w, https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/app-150x44.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/app-400x116.png 400w\" sizes=\"(max-width: 788px) 100vw, 788px\" \/><\/a><\/p>\n<\/div>\n<\/article>\n<div id=\"page\" class=\"hfeed site\">\n<div id=\"main\" class=\"site-main\">\n<div id=\"primary\" class=\"content-area\">\n<div id=\"content\" class=\"site-content\" role=\"main\">\n<article id=\"post-2498\" class=\"post-2498 post type-post status-publish format-standard hentry category-java category-maven tag-centos tag-ci tag-continuous-integration tag-devops tag-howto tag-jenkins tag-linux tag-programming tag-software-develement\">\n<div class=\"entry-content\">\n<ul>\n<li>In the popup select Convert login and password to token and follow the prompts. This will result in a new credential having been created. Save and reload the page.<\/li>\n<li>Now go back to the GitHub servers section and now click to add an additional server. As credential, select the credential which you have just selected.<\/li>\n<li>In the Jenkins web interface, click on <strong>New Item<\/strong> and then select GitHub organisation and connect it to your user account.<\/li>\n<\/ul>\n<p>Any of your GitHub projects will be automatically added to Jenkins, if they contain a Jenkinsfile. <a href=\"https:\/\/github.com\/javadelight\/delight-metrics-js\/blob\/master\/Jenkinsfile\">Here is an example<\/a>.<\/p>\n<h3>Connect with BitBucket<\/h3>\n<ul>\n<li>First, you will need to install the <a href=\"https:\/\/wiki.jenkins.io\/display\/JENKINS\/BitBucket+Plugin\">BitBucket plugin<\/a>.<\/li>\n<li>After it is installed, create a normal git project.<\/li>\n<li>Go to the Configuration for this project and select the following option:<\/li>\n<\/ul>\n<p><a href=\"http:\/\/rmohan.com\/wp-content\/uploads\/2018\/01\/bitbucket-trigger.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-7182\" src=\"http:\/\/rmohan.com\/wp-content\/uploads\/2018\/01\/bitbucket-trigger.png\" alt=\"\" width=\"439\" height=\"332\" srcset=\"https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/bitbucket-trigger.png 439w, https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/bitbucket-trigger-300x227.png 300w, https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/bitbucket-trigger-150x113.png 150w, https:\/\/mohan.sg\/wp-content\/uploads\/2018\/01\/bitbucket-trigger-400x303.png 400w\" sizes=\"(max-width: 439px) 100vw, 439px\" \/><\/a><\/p>\n<\/div>\n<div id=\"page\" class=\"hfeed site\">\n<div id=\"main\" class=\"site-main\">\n<div id=\"primary\" class=\"content-area\">\n<div id=\"content\" class=\"site-content\" role=\"main\">\n<article id=\"post-2498\" class=\"post-2498 post type-post status-publish format-standard hentry category-java category-maven tag-centos tag-ci tag-continuous-integration tag-devops tag-howto tag-jenkins tag-linux tag-programming tag-software-develement\">\n<div class=\"entry-content\">\n<ul>\n<li>Log into BitBucket and create a webhook in the settings for your project pointing to your Jenkins server as follows: <a href=\"http:\/\/youserver.com\/bitbucket-hook\/\" rel=\"nofollow\">http:\/\/youserver.com\/bitbucket-hook\/<\/a> (note the slash at the end)<\/li>\n<\/ul>\n<h3>Testing a Java Project<\/h3>\n<p>Chances are high you would like to run tests against a Java project, in the following, some instructions to get that working:<\/p>\n<\/div>\n<div id=\"st-container\" class=\"st-container\">\n<div class=\"main-container\">\n<div class=\"menu-pusher\">\n<div class=\"main-wrapper clearfix\">\n<div id=\"page\">\n<div class=\"detail-page cblayout\">\n<div class=\"content-area single-content-area\">\n<div id=\"content\" class=\"content content-single\">\n<div class=\"single-content\">\n<article id=\"post-10633\" class=\"post-10633 post type-post status-publish format-standard has-post-thumbnail hentry category-linux-tutorials tag-apache-2 tag-apache-maven tag-maven\">\n<div class=\"post-box\">\n<div class=\"single-post-content\">\n<p>Apache Maven is a software project management and comprehension tool. Maven can manage a project\u2019s build, reporting, and documentation from a central piece of information. This tutorial will help you to install Apache Maven on your CentOS\/RHEL 7\/6\/5 and Fedora 27\/26\/25.<\/p>\n<h2 class=\"heading1\">Step 1 \u2013 Install Java<\/h2>\n<p>Java development kit is the primary requirement of Apache Maven. So you need to install Java development kit (JDK) on your system. Make sure you have installed JDK, not JRE.<\/p>\n<pre>$ java -version \r\n\r\njava version \"1.8.0_144\"\r\nJava(TM) SE Runtime Environment (build 1.8.0_144-b01)\r\nJava HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode)\r\n<\/pre>\n<p>If you don\u2019t have Java Development Kit installed on your system. Visit <a href=\"https:\/\/tecadmin.net\/install-java-8-on-centos-rhel-and-fedora\/\" target=\"_blank\" rel=\"noopener\">Install Java 8 on CentOS\/RHEL 7\/6\/5<\/a><\/p>\n<h2 class=\"heading1\">Step 2 \u2013 Install Apache Maven<\/h2>\n<p>After verifying java version on your system. Download Apache maven from its official website or use following command to download Apache Maven 3.5.2.<\/p>\n<pre>cd \/usr\/local\r\nwget http:\/\/www-eu.apache.org\/dist\/maven\/maven-3\/3.5.2\/binaries\/apache-maven-3.5.2-bin.tar.gz\r\n<\/pre>\n<p>Now extract downloaded archive using following command.<\/p>\n<pre>sudo tar xzf apache-maven-3.5.2-bin.tar.gz\r\nsudo ln -s apache-maven-3.5.2  maven\r\n<\/pre>\n<h2 class=\"heading1\">Step 3 \u2013 Setup Environment Variables<\/h2>\n<p>As you have downloaded precompiled Apache Maven files on your system. Now set the environments variables by creating new file \/etc\/profile.d\/maven.sh.<\/p>\n<pre>sudo vi \/etc\/profile.d\/maven.sh\r\n<\/pre>\n<p>and add following content.<\/p>\n<pre class=\"pretty\">export M2_HOME=\/usr\/local\/maven\r\nexport PATH=${M2_HOME}\/bin:${PATH}\r\n<\/pre>\n<p>Now load the environment variables in current shell using following command.<\/p>\n<pre>source \/etc\/profile.d\/maven.sh\r\n<\/pre>\n<h2 class=\"heading1\">Step 4 \u2013 Check Version<\/h2>\n<p>Apache Maven has been successfully configured on your system. Use following command to check version of Maven.<\/p>\n<pre>mvn -version \r\n\r\nApache Maven 3.5.2 (138edd61fd100ec658bfa2d307c43b76940a5d7d; 2017-10-18T13:28:13+05:30)\r\nMaven home: \/usr\/local\/maven\r\nJava version: 1.8.0_144, vendor: Oracle Corporation\r\nJava home: \/opt\/jdk1.8.0_144\/jre\r\nDefault locale: en_IN, platform encoding: UTF-8\r\nOS name: \"linux\", version: \"4.4.0-93-generic\", arch: \"amd64\", family: \"unix\"\r\n<\/pre>\n<p>Finally, remove the downloaded archive file from the system to free disk space.<\/p>\n<pre>rm -f \/usr\/local\/apache-maven-3.5.2-bin.tar.gz\r\n\r\n\r\n\r\n\r\n<\/pre>\n<div class=\"application-main \" role=\"main\">\n<div>\n<div id=\"gist-pjax-container\" class=\"gist-content-wrapper\" data-pjax-container=\"\">\n<div class=\"container new-discussion-timeline experiment-repo-nav\">\n<div class=\"repository-content gist-content\">\n<div>\n<div class=\"js-gist-file-update-container js-task-list-container file-box\">\n<div id=\"file-jenkins-plugins-md\" class=\"file\">\n<div id=\"readme\" class=\"readme blob instapaper_body\">\n<article class=\"markdown-body entry-content\">\n<h1>My Jenkins plugins list<\/h1>\n<h2>Must Have<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Git+Plugin\" rel=\"nofollow\">Git<\/a> Git SCM support.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Multiple+SCMs+Plugin\" rel=\"nofollow\">Multiple SCMs<\/a> Support for multiple SCM stages in freestyle job.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Copy+Artifact+Plugin\" rel=\"nofollow\">Copy Artifact<\/a> Allows to copy artifacts between different builds and jobs.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/JobConfigHistory+Plugin\" rel=\"nofollow\">JobConfigHistory<\/a> Allows to store history of changes for system and job configuration files.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/thinBackup\" rel=\"nofollow\">thinBackup<\/a> Just a backup tool.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/EnvInject+Plugin\" rel=\"nofollow\">EnvInject<\/a> Allows to inject and print environment variables.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Workspace+Cleanup+Plugin\" rel=\"nofollow\">Workspace Cleanup<\/a> Allows to clean workspace before the build.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Template+Project+Plugin\" rel=\"nofollow\">Template Project<\/a> Allows to use SCM\/build\/publish steps from one job in another.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/EZ+Templates+Plugin\" rel=\"nofollow\">EZ Templates<\/a> Allows to use one job as a template for another (the other job can overwrite default values for job parameters).<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Green+Balls\" rel=\"nofollow\">Green Balls<\/a> Replaces blue balls with green one.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Modern+Status+Plugin\" rel=\"nofollow\">Modern Status<\/a> Alternative set of status and action icons.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/SafeRestart+Plugin\" rel=\"nofollow\">SafeRestart<\/a> Adds SafeRestart button that allows to restart jenkins server.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Show+Build+Parameters+Plugin\" rel=\"nofollow\">Show Build Parameters<\/a> Shows build parameters on main build page.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Rebuild+Plugin\" rel=\"nofollow\">Rebuild<\/a> Adds Rebuild button.<\/li>\n<\/ul>\n<h2>Usefull<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/CloudBees+Folders+Plugin\" rel=\"nofollow\">CloudBees Folders<\/a> Adds folders support for jobs (jobs can be put into folders).<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Promoted+Builds+Simple+Plugin\" rel=\"nofollow\">Promoted Builds Simple<\/a> Allows to add custom label to builds.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/GitLab+Plugin\" rel=\"nofollow\">GitLab<\/a> GitLab integration.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Conditional+BuildStep+Plugin\" rel=\"nofollow\">Conditional BuildStep<\/a> Adds conditional build steps support.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build-timeout+Plugin\" rel=\"nofollow\">Build-timeout<\/a> Allows to specify time-outs for build steps.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Role+Strategy+Plugin\" rel=\"nofollow\">Role Strategy<\/a> Allows to specify permissions per role and assign users to different roles.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/NodeLabel+Parameter+Plugin\" rel=\"nofollow\">NodeLabel Parameter<\/a> Allows to set node\/label as job parameter.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Heavy+Job+Plugin\" rel=\"nofollow\">Heavy Job<\/a> Allows to make job occupy more than one executor.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Throttle+Concurrent+Builds+Plugin\" rel=\"nofollow\">Throttle Concurrent Builds<\/a> Allows to prevent concurrent execution of some jobs.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Copy+To+Slave+Plugin\" rel=\"nofollow\">Copy To Slave<\/a> Allows to copy some file from jenkins home directory to slave workspace.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Parameter+Separator+Plugin\" rel=\"nofollow\">Parameter Separator<\/a> Adds separator between jobs parameters.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Compact+Columns\" rel=\"nofollow\">Compact Columns<\/a> More compact columns for showing last success and failure.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Console+Column+Plugin\" rel=\"nofollow\">Console Column<\/a> Provide a fast-path console link available for views.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/AnsiColor+Plugin\" rel=\"nofollow\">AnsiColor<\/a> Allows to print color output in colsole view.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Timestamper\" rel=\"nofollow\">Timestamper<\/a> Add timestemps to console output.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Trigger+Badge+Plugin\" rel=\"nofollow\">Build Trigger Badge<\/a> Show who\/what trigger the job.<\/li>\n<\/ul>\n<h2>Publishers<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Warnings+Plugin\" rel=\"nofollow\">Warnings<\/a> Parses compiler warnings.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/xUnit+Plugin\" rel=\"nofollow\">xUnit<\/a> Parses GTest, CTest, etc. output.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Valgrind+Plugin\" rel=\"nofollow\">Valgrind<\/a> Valgrind run\/publish support.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Cppcheck+Plugin\" rel=\"nofollow\">Cppcheck<\/a> Cppcheck results publishing.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Cobertura+Plugin\" rel=\"nofollow\">Cobertura<\/a> Code coverage results publishing.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Doxygen+Plugin\" rel=\"nofollow\">Doxygen<\/a> Doxygen output HTML publishing.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/HTML+Publisher+Plugin\" rel=\"nofollow\">HTML Publisher<\/a> Custom HTML pages publishing.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Failure+Analyzer\" rel=\"nofollow\">Build Failure Analyzer<\/a> Generic analyser for console output.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Task+Scanner+Plugin\" rel=\"nofollow\">Task Scanner<\/a> Searches for TODO\/FIXME\/BUG\/&#8230; in code.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Flexible+Publish+Plugin\" rel=\"nofollow\">Flexible Publish<\/a> Adds conditional publishing steps.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Image+Gallery+Plugin\" rel=\"nofollow\">Image Gallery<\/a> Allows to publish images.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Email-ext+plugin\" rel=\"nofollow\">Email-ext<\/a> Extended email support.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Performance+Plugin\" rel=\"nofollow\">Performance<\/a> Publish performance data.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/DRY+Plugin\" rel=\"nofollow\">DRY<\/a> Publish CPD results (code duplication).<\/li>\n<\/ul>\n<h2>Pipelines<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Parameterized+Trigger+Plugin\" rel=\"nofollow\">Parameterized Trigger<\/a> Trigger another jobs with parameter.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Downstream+buildview+plugin\" rel=\"nofollow\">Downstream buildview<\/a> Shows all downstream jobs.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Delivery+Pipeline+Plugin\" rel=\"nofollow\">Delivery Pipeline<\/a> Extra view for simple jobs pipeline.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Pipeline+Plugin\" rel=\"nofollow\">Build Pipeline<\/a> Extra view for simple jobs pipeline.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Multijob+Plugin\" rel=\"nofollow\">Multijob<\/a> Job that is a container for another jobs.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Flow+Plugin\" rel=\"nofollow\">Build Flow<\/a> Allows to describe build flow in groovy script.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Flow+Test+Aggregator+Plugin\" rel=\"nofollow\">Build Flow Test Aggregator<\/a> Aggregate test results for Build Flow job.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Graph+View+Plugin\" rel=\"nofollow\">Build Graph View<\/a> Represents build flow job as a graph.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Pipeline+Plugin\" rel=\"nofollow\">Pipeline<\/a> Describe whole build as pipeline script.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Pipeline+Stage+View+Plugin\" rel=\"nofollow\">Pipeline Stage View<\/a> Additional view for Pipeline jobs.<\/li>\n<\/ul>\n<h2>Misc<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Promoted+Builds+Plugin\" rel=\"nofollow\">Promoted Builds<\/a> Allows to promote build, mark it and perform some actions.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Gravatar+plugin\" rel=\"nofollow\">Gravatar<\/a> Gravatar service support.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Disk+Usage+Plugin\" rel=\"nofollow\">Disk Usage<\/a> Shows disk usage statistics.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/ArtifactDeployer+Plugin\" rel=\"nofollow\">ArtifactDeployer<\/a> Allows to deploy build artifacts to remote server.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Dashboard+View\" rel=\"nofollow\">Dashboard View<\/a> Additional view for jobs with extra widgets.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Monitor+Plugin\" rel=\"nofollow\">Build Monitor<\/a> Additional view for jobs.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Mail+Watcher+Plugin\" rel=\"nofollow\">Mail Watcher<\/a> Allows to track changes in job configurations view email.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Configuration+Slicing+Plugin\" rel=\"nofollow\">Configuration Slicing<\/a> Allows to edit property for multiple jobs in a time.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Claim+plugin\" rel=\"nofollow\">Claim<\/a> Allows to claim failed build by responsible developer.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Clone+Workspace+SCM+Plugin\" rel=\"nofollow\">Clone Workspace SCM<\/a> Allows to clone workspace of one job to another job as SCM step.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/CMake+Plugin\" rel=\"nofollow\">CMake<\/a> Support for CMake based projects.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Ownership+Plugin\" rel=\"nofollow\">Ownership<\/a> Manages ownership for slaves and jobs.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Progress+Bar+Column+Plugin\" rel=\"nofollow\">Progress Bar Column<\/a> Adds progress bar column to jobs view.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Configure+Job+Column+Plugin\" rel=\"nofollow\">Configure Job Column<\/a> Adds configure link to jobs view.<\/li>\n<\/ul>\n<h2>Not tested<\/h2>\n<ul>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Analysis+Collector+Plugin\" rel=\"nofollow\">Analysis Collector<\/a> Collects results from different analysers.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Priority+Sorter+Plugin\" rel=\"nofollow\">Priority Sorter<\/a> Assign priorities for jobs.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/CloudBees+Docker+Custom+Build+Environment+Plugin\" rel=\"nofollow\">CloudBees Docker Custom Build Environment<\/a> Run build in docker environment.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Text-finder+Plugin\" rel=\"nofollow\">Text-finder<\/a> Search console output to mark build as failure.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/MSBuild+Plugin\" rel=\"nofollow\">MSBuild<\/a> Support for MSBuild tool.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Post+build+task\" rel=\"nofollow\">Post build<\/a> Run a post-build task depending on console output.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/CloudBees+Docker+Pipeline+Plugin\" rel=\"nofollow\">CloudBees Docker Pipeline<\/a> Run Pipeline jobs inside docker containers.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Monitoring\" rel=\"nofollow\">Monitoring<\/a> Monitors jenkins server.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Nested+View+Plugin\" rel=\"nofollow\">Nested View<\/a> Group job views into several levels.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Name+Setter+Plugin\" rel=\"nofollow\">Build Name Setter<\/a> Sets custom build name.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/View+Job+Filters\" rel=\"nofollow\">View Job Filters<\/a> Filter jobs in view by regular expressions.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Job+Restrictions+Plugin\" rel=\"nofollow\">Job Restrictions<\/a> Restricts jobs execution (restrict which jobs can be run on which nodes).<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/File+System+SCM\" rel=\"nofollow\">File System SCM<\/a> Simulate File System as SCM.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Gradle+Plugin\" rel=\"nofollow\">Gradle<\/a> Invoke Gradle as build step.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Windows+Exe+Runner+Plugin\" rel=\"nofollow\">Windows Exe Runner<\/a> Run Windows executable as build step.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/DiskCheck+Plugin\" rel=\"nofollow\">DiskCheck<\/a> Checks for disk space on the slave machine before starting a build.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/pre-scm-buildstep\" rel=\"nofollow\">pre-scm-buildstep<\/a> Run some build steps prior to SCM checkout.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Publish+Over+FTP+Plugin\" rel=\"nofollow\">Publish Over FTP<\/a> Publish artifacts over FTP.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Publish+Over+SSH+Plugin\" rel=\"nofollow\">Publish Over SSH<\/a> Publish artifacts over SSH.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Copy+project+link+plugin\" rel=\"nofollow\">Copy project link<\/a> Adds the &#8220;Copy project&#8221; link into left side panel in the main project page.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Custom+Job+Icon+Plugin\" rel=\"nofollow\">Custom Job Icon<\/a> Allows to configure a custom icon for each job.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Avatar+Plugin\" rel=\"nofollow\">Avatar<\/a> Allows avatar images to be uploaded and associated with Jenkins users.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Bulk+Builder+Plugin\" rel=\"nofollow\">Bulk Builder<\/a> Trigger multiple builds at once.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Build+Environment+Plugin\" rel=\"nofollow\">Build Environment<\/a> Shows information about the environment of a build and gives the option to compare the environments of two builds.<\/li>\n<li><a href=\"https:\/\/wiki.jenkins-ci.org\/display\/JENKINS\/Label+Linked+Jobs+Plugin\" rel=\"nofollow\">Label Linked Jobs<\/a> Facilitate maintenance when using numerous\/complex labels.<\/li>\n<\/ul>\n<\/article>\n<div class=\"main-area\">\n<div class=\"layout-stories\">\n<div class=\"two-rows\">\n<div class=\"layout-post\">\n<article class=\"post-content\">\n<ul>\n<li>Server plugins<br \/>\nServer Monitoring<br \/>\nNested views<br \/>\nRestarting safely<br \/>\nGreen balls<br \/>\nPipeline plugins<br \/>\nBuild pipelines<br \/>\nBuild badges and promotions<br \/>\nBuilding a better dashboard<br \/>\nJob plugins<br \/>\nJobs as code<br \/>\nJob scripting and parameterization<br \/>\nAnalysis<br \/>\nCompiler warnings<br \/>\nTest results and coverage<br \/>\nTask scanning<br \/>\nJob configuration history<\/li>\n<\/ul>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/section>\n","protected":false},"excerpt":{"rendered":"<p> Jenkins is a free and open source CI (Continuous Integration) tool which is written in JAVA. Jenkins is widely used for project development, deployment, and automation. Jenkins allows you to automate the non-human part of the whole software development process. It supports version control tools, including AccuRev, CVS, Subversion, Git, Mercurial, Perforce, ClearCase and [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[90],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7180"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7180"}],"version-history":[{"count":7,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7180\/revisions"}],"predecessor-version":[{"id":7193,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/7180\/revisions\/7193"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}