User Tools

Site Tools


wiki:jenkins

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
wiki:jenkins [2015/02/09 17:50]
Fatih Degirmenci Jenkins details.
wiki:jenkins [2016/01/18 21:33] (current)
Iben Rodriguez old revision restored (2016/01/08 02:39)
Line 3: Line 3:
 Jenkins is an extensible open source continuous integration server. See the details from [[http://​jenkins-ci.org/​|here]]. Jenkins is an extensible open source continuous integration server. See the details from [[http://​jenkins-ci.org/​|here]].
  
-====== OPNFV Jenkins ====== 
  
 Linux Foundation provides Jenkins for OPNFV. You can access it from [[https://​build.opnfv.org/​ci/​|this link]]. Linux Foundation provides Jenkins for OPNFV. You can access it from [[https://​build.opnfv.org/​ci/​|this link]].
 +
 +====== How to Connect Servers from Labs to OPNFV Jenkins ======
 +
 +The method that is normally used for connecting servers(slaves) to Jenkins requires SSH access to servers from outside. This may not be something to fix quickly for all the labs so we use the alternative way to connect slaves to Jenkins.
 +
 +This alternative uses JNLP. Via JNLP, slaves open connection towards Jenkins instead of Jenkins accessing to them.
 +
 +The server you want to connect to OPNFV Jenkins must have access to internet obviously.
 +
 +Please follow below steps to enable this.
 +
 +  * Please create a ticket by sending mail to OPNFV LF Helpdesk first, opnfv-helpdesk@rt.linuxfoundation.org.
 +  * Ensure DNS is setup for your public IP addresses: DNS A records and PTR records need to be matching
 +  * Create a local user on server you want to connect to OPNFV Jenkins. (user could be named jenkins for example)
 +  * Download slave.jar to server you want to connect to OPNFV Jenkins using this link: https://​build.opnfv.org/​ci/​jnlpJars/​slave.jar
 +  * Create a directory /​home/​jenkins/​opnfv_slave_root
 +  * Ping/​contact LF(Aric) via chat as getting the server connected requires Aric's help.
 +  * Ask Aric to create a slave on OPNFV Jenkins. The slave should use JNLP as method. ​ (You can mention Ericsson slave so he can copy that slave and do small modifications on it.)
 +  * Provide needed information to Aric such as the IP of the server, name for your slave, slave root ( /​home/​jenkins/​opnfv_slave_root for example) and so on. 
 +  * Aric should provide you the key/token you need to use.
 +  * Have a quick try to see if you can establish connection towards OPNFV Jenkins by using below command.
 +  * java -jar slave.jar -jnlpUrl https://​build.opnfv.org/​ci/​computer/<​slave_name>/​slave-agent.jnlp -secret <​token_you_get_from_Aric>​
 +  * Navigate to OPNFV Jenkins and look for your slave. It should have some executors in "​Idle"​ state if the connection is successful. (https://​build.opnfv.org/​ci/​)
 +  * Aric will probably create a "​HelloWorld"​ job and execute it on the slave to verify basic functionality.
 +  * Once you reach this step, you have the server connection to OPNFV Jenkins completed. You can script the command you used above so the connection between slave and Jenkins can be kept open.
 +====== Jenkins Slaves ======
 +
 +The slaves connected to OPNFV Jenkins using the method explained above are listed below.
 +
 +https://​build.opnfv.org/​ci/​computer/​
 +
 +The ones that don't have red cross next to computer icon are fully functional.
  
 ====== Basic Jenkins Setup ====== ====== Basic Jenkins Setup ======
Line 11: Line 42:
 Certain things need to be set up in order to use Jenkins in CI. Below list contains some of the obvious ones. Certain things need to be set up in order to use Jenkins in CI. Below list contains some of the obvious ones.
  
-  * Setting up Credentials:​ This defines who can do what. +===== Creating Service/​Functional ​Account ​and Setting it up ===== 
-  * Adding Slaves: These are the servers where the jobs/builds are executed. + 
-  * Creating Service/​Functional ​account ​and Setting it upThis is used for connecting slaves to Jenkins. Whatever account is used for connecting slave(s) then used for executing jobs/​build. +This is used for connecting slaves to Jenkins. Whatever account is used for connecting slave(s) then used for executing jobs/​build. 
-  ​* ​Creating JobsThese are the jobs that build software, test it and so on. + 
-  Installing Plugins: Add new functionality to Jenkins ​such as handling ​SCM stuff, ​throttling ​builds, logging, and so on.+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.  ​See notes on [[octopus:​jenkins_wow|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 ====== ====== Plugins ======
wiki/jenkins.1423504244.txt.gz · Last modified: 2015/02/09 17:50 by Fatih Degirmenci