Professional Documents
Culture Documents
itech
Bloghttp://www.cnblogs.com/itech
Contents
Jenkins ................................................................................................................................................. 1
itech ................................................................................................................................................. 1
Bloghttp://www.cnblogs.com/itech ....................................................................................................... 1
Jenkins ......................................................................................................................................... 3
Jenkins .................................................................................................................................................. 4
Jenkins JavaHelloWorld ................................................................................................................... 7
Jenkins ............................................................................................................................................ 13
Jenkins Windows Slave ............................................................................................................. 16
Jenkins Linux Slave ............................................................................................................... 23
Jenkins Master/Slave ......................................................................................................................... 26
Jenkins ........................................................................................................................................ 29
Jenkins batch Python ................................................................................................................ 30
Jenkins ........................................................................................................................ 32
Jenkins Perforce .................................................................................................................... 37
Jenkins trigger ................................................................................................................................ 43
Jenkins MSBuild ................................................................................................................. 44
Jenkins EnvInject .................................................................................................... 47
Jenkins Workspace cleanup + Copy to slave .................................................................................. 51
Jenkins VShpere Cloud ................................................................................................................... 53
Jenkins Publish Over SSH/CIFS/FTP................................................................................................ 55
Jenkins Deploy ............................................................................................................................... 57
Jenkins Dashboard wall display ................................................................................................ 60
Jenkins .................................................................................................................................... 62
Jenkins
Jenkins Hudson
Jenkins
3 SCM+build release
Jenkins
Jenkins
Jenkins
master/slave build
web
tips
200
Jenkins
Jenkins
Jenkins JavaHelloWorld
Jenkins
Jenkins Windows Slave
Jenkins Linux Slave
Jenkins Master/Slave
Jenkins
Jenkins batch Python
Jenkins
Jenkins Perforce
Jenkins trigger
Jenkins MSBuild
Jenkins EnvInject
Jenkins Workspace cleanup + Copy to slave
Jenkins VShpere Cloud
Jenkins Publish Over SSH/CIFS/FTP
Jenkins Deploy
Jenkins Dashboard wall display
Jenkins
Jenkins
1 Jenkins
Jenkins hudson Jenkins
cron jobs
2 jenkins
jenkins.war, c:\jenkins java -jar jenkins.war. (
JDK JAVA_HOME %JAVA_HOME%\bin PATH
)
c:\jenkins>java -jar jenkins.war
Running from: C:\jenkins\jenkins.war
webroot: $user.home/.jenkins
[Winstone 2011/11/02 17:11:27] - Beginning extraction from war file
Jenkins home directory: C:\Users\AAA\.jenkins found at: $user.home/.jenkins
[Winstone 2011/11/02 17:12:57] - HTTP Listener started: port=8080
[Winstone 2011/11/02 17:12:57] - AJP13 Listener started: port=8009
[Winstone 2011/11/02 17:12:58] - Winstone Servlet Engine v0.9.10 running:
controlPort=disabled
Nov 02, 2011 5:12:58 PM jenkins.model.Jenkins$6 onAttained
INFO: Started initialization
Nov 02, 2011 5:13:02 PM jenkins.model.Jenkins$6 onAttained
INFO: Listed all plugins
Nov 02, 2011 5:13:02 PM jenkins.model.Jenkins$6 onAttained
INFO: Prepared all plugins
Nov 02, 2011 5:13:02 PM jenkins.model.Jenkins$6 onAttained
INFO: Started all plugins
Nov 02, 2011 5:13:02 PM jenkins.model.Jenkins$6 onAttained
INFO: Augmented all extensions
Nov 02, 2011 5:13:02 PM jenkins.model.Jenkins$6 onAttained
INFO: Loaded all jobs
Nov 02, 2011 5:13:04 PM jenkins.model.Jenkins$6 onAttained
INFO: Completed initialization
Nov 02, 2011 5:13:04 PM hudson.TcpSlaveAgentListener <init>
INFO: JNLP slave agent listener started on TCP port 37157
Nov 02, 2011 5:13:14 PM hudson.WebAppMain$2 run
INFO: Jenkins is fully up and running
http://localhost:8080 , jenkins
jenkins http://jenkins.361315.n4.nabble.com/
Jenkins JavaHelloWorld
Jenkins master/slave job
JavaHelloworld master Jenkins
Java HelloWorld
Ant c:\JavaHelloWorld\build.xml
<target name="clean">
<delete dir="${build.dir}"/>
</target>
<target name="compile">
<mkdir dir="${classes.dir}"/>
<javac srcdir="${src.dir}" destdir="${classes.dir}"/>
</target>
<target name="jar" depends="compile">
<mkdir dir="${jar.dir}"/>
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
</project>
package oata;
1 jenkins 8000
2 JavaHelloWorld job
ie http://localhost:8000
new job javahelloworld job job
http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html
Jenkins
1 jenkins C:\Documents and Settings\AAA\.jenkins
.jenkins
jobs
JavaHelloWorld
builds
2011-11-03_16-48-17
2011-11-03_16-49-05
2011-11-03_16-49-29
2011-11-03_17-01-49
2011-11-03_17-11-42
workspace
build
classes
oata
jar
src
oata
plugins
usercontent
war
set JENKINS_HOME=C:\jenkins
jenkins
2 jenkins
JENKINS_HOME jenkins
3 jobs
jobs%JENKINS_HOEM%\jobs
jobs %JENKINS_HOEM%\jobs job
5 Jenkins
--httpPort=$HTTP_PORT jenkins web
--httpsPort=$HTTP_PORT https
--httpListenAddress=$HTTP_HOST jenkins ip ip
jenkins server
6 jenkins timezone
jenkins server timezone timezone jenkins
timezone jenkins -
Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ
7 jenkins jenkins
startjenkins.bat
set JENKINS_HOME=c:\jenkins
cd /d %JENKINS_HOME%
java -jar %JENKINS_HOME%\jenkins.war --httpPort=8000
8 jenkins
jenkins servlet apachetomcat servlet
jenkins
windows jenkins insall as windows service jenkins
service jenkins windows service
9 jenkins
jenkins jenkins jenkins
plugins
10 jenkins
BUILD_NUMBER build 23
BUILD_ID BUILD_NUMBER 2011-11-15_16-06-21
JOB_NAME job JavaHelloWorld
BUILD_TAG BUILD_ID,BUILD_NUMBER, build
jenkins-JavaHelloWorld-23
EXECUTOR_NUMBER 0
NODE_NAMEslave MyServer01
NODE_LABELSslave label slave JavaHelloWorld MyServer01
JAVA_HOME java home C:\Program Files (x86)\Java\jdk1.7.0_01
WORKSPACEjob c:\jenkins\workspace\JavaHelloWorld
HUDSON_URL = JENKINS_URL jenkins url http://localhost:8000/
BUILD_URLbuild url http://localhost:8000/job/JavaHelloWorld/23/
JOB_URL job url http://localhost:8000/job/JavaHelloWorld/
SVN_REVISIONsvn revison 4
Jenkins Windows Slave
https://wiki.jenkins-
ci.org/display/JENKINS/Step+by+step+guide+to+set+up+master+and+slave+machines
Slave
2 Slave
*executors 1
* Slave c:\jenkins
*Usage Leave this machine for tied jobs only
*Lunch Method Launch slave agents via Java Web Start
* Avaliablitiy Keep this slave online as much as possible
*
slave job
slave label slave uage leave this
machine for tied jobs only
Jenkins JavaHelloWorld job
restrict where this project can be run noteslave label
SVN jenkins svn
job slave build slave
https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds
http://community.jboss.org/wiki/HudsonWindowsSlavesSetup
Jenkins Linux Slave
1 Linux Slave
jenkins sudo /usr/sbin/useradd -m jenkins -d /home/jenkins
jenkins id jenkins
uid=506(jenkins) gid=506(jenkins) groups=506(jenkins)
sudo /usr/bin/passwd jenkins jenkins 0
jenkins su - jenkins
java java --version
sshd /sbin/service --status-all | grep ssh
ant root yum install ant;
jenkins
authorized_keys
cd .ssh
cat id_rsa.pub > authorized_keys
chmod 700 authorized_keys
;
3 Slavenote,
jenkins ssh slave plugin
Jenkins Master/Slave
windows GUI
slavenote
slave slave
3 slave
slave
master jenkins master slave
SSHRSH windows
cygwin psexec
UI slave jenkins
startup items slave JNLP slave
5 slave
Slave
* slave jenkins UID GID slave
* jenkins home /home/jenkins,
* slave sshdwindows cygwin sshd
* slave ntp client ntp server
* sh slave jenkins sshd javaant
maven
* slave slave
#!/bin/bash JAVA_HOME=/opt/SUN/jdk1.6.0_04 PATH=$PATH:$JAVA_HOME/bin export
PATH java -jar /var/jenkins/bin/slave.jar
Jenkins
Jenkins CI
* Jenkins home
* job
* branch jobbuild
* builds jobs
* email aliais
* log
* job
* build Taglabel baseline
* Jenkins bootstrapper build
https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Best+Practices
Jenkins batch Python
1 Jenkins
java -jar jenkins.war --argumentsRealm.passwd.user=password --
argumentsRealm.roles.user=admin
jenkins swordfish
java -jar jenkins.war --argumentsRealm.passwd.jenkins=swordfish --
argumentsRealm.roles.jenkins=admin
2 Manage Jenkins -> Configure System enable security
Security Realm Delegate to servlet container Authorization Legacy Mode
3 login http://yourhost/jenkins/loginEntry
logout
1 Manage Jenkins -> Configure System -> Enable Security Security Realm
Jenkins's own user database Allow users to sign up Authentication
Matrix-based security
2 signup jenkins
3 signup
signup dev dev job build
%JENKINS_HOME%\config.xml
Jenkins
https://wiki.jenkins-ci.org/display/JENKINS/Quick+and+Simple+Security
https://wiki.jenkins-ci.org/display/JENKINS/Standard+Security+Setup
Jenkins Perforce
perforce build
job
job log
Jenkins clientspec clientspec
workspace clientspec clientroot view
view->mapping
perforce Jenkins
perforce label build label
perforce label
https://wiki.jenkins-ci.org/display/JENKINS/Plugins
Jenkins trigger
Jenkins trigger
3 build periodically
schedule cron
4 Poll SCM
schedule SCM server build
continous build
trigger
https://wiki.jenkins-ci.org/display/JENKINS/Plugins
Jenkins MSBuild
Jenkins buildtools
buildtools
cmakebuilder Plugin cmake
Copy Artifact Plugin
Job Exporter Plugin
MSBuild Plugin MSBuild .NET
NAnt Plugin NAnt;
Python Plugin : python
qmakebuilder Plugin qmake
Rake plugin rake
SCons Plugin Scons
Xcode Plugin MACiphone
MSBuild CsharpHelloWorld
using System;
namespace CSharpHelloWorld
{
class Program
{
static void Main(string[] args)
{
System.Console.WriteLine("Hello World!");
}
}
}
slave
build build
build release debug
build
EnvInject
workspace cleanup
Copy to slave
2 slave VSphere VM
+
Jenkins Publish Over SSH/CIFS/FTP
.NET web
build
3 job build "Build selector for Copy Artifact", copy artifact build
"Specified by build parameter" build
+
4 post-build action deploy job artifact
jenkins
dashboard job
Wall display
jobs
view MyDashboard
Rebuild Plugin
Cppcheck Plugin
Doxygen Plugin
NUnit Plugin
xUnit Plugin
JIRA Plugin
Bugzilla Plugin
Trac Plugin