Jenkins配置
丢弃旧的构建 -> 保持构建的最大个数 :10
MAVEN;
Root POM :pom.xml
Goals and options:clean install sonar:sonar -U -DskipTests=true
GIT:
参数化构建过程:
方法1:
Dynamic Choice Parameter:
name: release_branch
Choices Script: def ver_keys = [ 'bash', '-c', 'cd ~/.jenkins/workspace/my_project; git pull>/dev/null; git fetch -p; git branch -a|grep -v "*" | grep -v ">"|cut -d "/" -f3|sort -r |head -10 ' ] ver_keys.execute().text.tokenize('\n')
方法2:
Git Parameter
Name:developer_branch
Parameter Type:Branch
Repository URL: git@xxx:projgroup/proj.git
Credentials:
Branches to build, Branch Specifier (blank for 'any'): $release_branch
SVN:
SSH:
Send build artifacts over SSH
Transfers:
Source files :target/*.war
Remove prefix :target/
Remote directory: /my_project8080/war/
Exec command:/home/tomcat/scripts/deploy.sh my_project 8080
deploy.sh脚本内容如下:
#!/bin/bash
parasnum=2
# function
help_msg()
{
cat << help
+----------------------------------------------------+
+ Error Cause:
+ you enter $# parameters
+ the total paramenter number must be $parasnum
+ 1st :PROJECT_NAME
+ 2nd :SOURCE_PORT
+----------------------------------------------------+
help
}
# ----------------------------------------------------
# Check parameter number
# ----------------------------------------------------
if [ $# -ne ${parasnum} ]
then
help_msg
exit
fi
# ----------------------------------------------------
# Initialize the parameter.
# ----------------------------------------------------
PROJECT_NAME=$1
SPORT=$2
BASE_HOME="/home/tomcat/${PROJECT_NAME}${SPORT}"
TOMCAT_HOME="${BASE_HOME}/apache-tomcat-7.0.54"
TOMCAT_PORT=${SPORT}
TOMCAT_PROJECT=${PROJECT_NAME}
WAR_DIRECTORY="${BASE_HOME}/war"
export JAVA_HOME=/home/tomcat/jdk1.7.0_60
export JRE_HOME=${JAVA_HOME}/jre
export PATH=$PATH:${JAVA_HOME}/bin
export CLASSPATH=./:${JAVA_HOME}/lib:${JAVA_HOME}/jre/lib
echo "----Stop tomcat"
${TOMCAT_HOME}/bin/shutdown.sh
TOMCAT_PID=`/usr/bin/lsof -n -P -t -i :${TOMCAT_PORT}`
if [ -n "${TOMCAT_PID}" ]; then
for i in {1 .. 3}
do
echo "current tomcat pid: " ${TOMCAT_PID}
sleep 3
TOMCAT_PID=`/usr/bin/lsof -n -P -t -i :${TOMCAT_PORT}`
done
if [ -n "${TOMCAT_PID}" ]; then
echo "----Tomcat thread still exists, needs to kill: "${TOMCAT_PID}
kill -9 ${TOMCAT_PID}
sleep 1
fi
fi
echo "----Delete old files"
rm -rf ${TOMCAT_HOME}/work/Catalina/localhost/*
rm -rf ${TOMCAT_HOME}/webapps/${TOMCAT_PROJECT}.war
rm -rf ${TOMCAT_HOME}/webapps/${TOMCAT_PROJECT}
echo "----Move new war file to target Directory"
mv ${WAR_DIRECTORY}/*.war ${TOMCAT_HOME}/webapps/${TOMCAT_PROJECT}.war
echo "----Startup tomcat"
${TOMCAT_HOME}/bin/startup.sh