注意:此以我公司为例,以svn上传代码
一、添加视图
1、点击右上角”+”号,新建新视图
勾选在该视图下显示的项目或者在该视图新建项目,点保存即可。
二、新建项目
1、点击左上角的新建,创建新项目。
输入项目名称,例如项目名称为qy-channel-monitor,本次构建选择构建一个多配置项目,点击OK,进入配置界面。
项目配置界面如下:
2、构建过程
整个构建过程包含8个部分:General、Advanced Project Options、源码管理、构建触发器、Configuration Matrix、构建环境、构建、构建后操作。
1)、General部分:
项目名称,描述
丢弃旧的构建,保持最近2天的,最大数量是5
参数化构建,用来获取构建过程中用到的一些全局变量
进入配置获取最近版本号的界面
选择Dynamic Parameter 进入配置截取版本的界面,
配置接面如下图:
选择String Parameter,配置端口参数
进入端口配置界面:
本次配置没用到Advanced Project Options这个部分,直接进入源码管理
选择Subversion
填写完整的svn路径,svn账户名,用来拉取源代码工程包。
2)、Configuration Matrix部分
本次配置未用到构建触发器,直接跳过,进入Configuration Matrix,
选择Slaves 进入配置界面,
进入slaves,选择需要部署项目的目标主机,目标主机的具体添加方法,下面会提到。
3)、构建环境部分:
勾选第一个,表示再构建之前,会删除旧的构建文件。
4)、构建部分
选择Execute shell
进入shell 脚本构建的阶段,配置举例如下:
5)、构建后操作
配置邮件通知,当构建失败是发邮件通知邮件给构建人。
进入配置界,默认配置即可。(先安装Email Extension Plugin插件配置,配置全局邮件通知。)
这里可以指定单个项目收件人是谁。
选择Edidatable Email Notification
点击高级设置
再点高级
恢复内容代码如下(需要修改项目名称及个别格式,按需求来):
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="UTF-8"> 5 <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title> 6 </head> 7 8 <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" 9 offset="0"> 10 <table width="95%" cellpadding="0" cellspacing="0" 11 style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif"> 12 <tr> 13 <td>(本邮件是程序自动下发的,请勿回复!)</td> 14 </tr> 15 <tr> 16 <td><h2> 17 <font color="#0000FF">hi,all: 18 ************(写项目名称)项目已经发布完成,如有问题请及时联系运维,谢谢~</font> 19 </h2></td> 20 </tr> 21 <tr> 22 <td><br /> 23 <b><font color="#0B610B">构建信息</font></b> 24 <hr size="2" width="100%" align="center" /></td> 25 </tr> 26 <tr> 27 <td> 28 <ul> 29 <li>项目名称 : ${PROJECT_NAME}</li> 30 <li>构建编号 : 第${BUILD_NUMBER}次构建</li> 31 <li>SVN 版本: ${SVN_REVISION}</li> 32 <li>触发原因: ${CAUSE}</li> 33 </ul> 34 </td> 35 </tr> 36 <tr> 37 <td><b><font color="#0B610B">Changes Since Last 38 Successful Build:</font></b> 39 <hr size="2" width="100%" align="center" /></td> 40 </tr> 41 <tr> 42 <td> 43 <ul> 44 <li>历史变更记录 : <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a></li> 45 </ul> ${CHANGES_SINCE_LAST_SUCCESS,reverse=true, format="Changes for Build #%n:<br />%c<br />",showPaths=true,changesFormat="<pre>[%a]<br />%m</pre>",pathFormat=" %p"} 46 </td> 47 </tr> 48 <tr> 49 <td><b>Failed Test Results</b> 50 <hr size="2" width="100%" align="center" /></td> 51 </tr> 52 <tr> 53 <td><pre 54 style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">$FAILED_TESTS</pre> 55 <br /></td> 56 </tr> 57 <tr> 58 <td><b><font color="#0B610B">构建日志 (最后 500行):</font></b> 59 <hr size="2" width="100%" align="center" /></td> 60 </tr> 61 <!-- <tr> 62 <td>Test Logs (if test has ran): <a 63 href="${PROJECT_URL}ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip">${PROJECT_URL}/ws/TestResult/archive_logs/Log-Build-${BUILD_NUMBER}.zip</a> 64 <br /> 65 <br /> 66 </td> 67 </tr> --> 68 <tr> 69 <td><textarea cols="80" rows="30" readonly="readonly" 70 style="font-family: Courier New">${BUILD_LOG, maxLines=500}</textarea> 71 </td> 72 </tr> 73 </table> 74 </body> 75 </html>
解决坑:
描述一下本人部署过程中碰见过的坑
1.不能用tags.version 用tags_version。
2.如果配置文件有目录的,必须授权给jenkins用户。
3.第一次构建升级之前,必须杀掉root用户启动的对应服务,chown -R jenkin.jenkins*.log再用jenkins用户构建升级。
4.Ssh信任做好之后,需要在jenkins服务器上用切换到jenkins用户下,用jenkins用户登录slave服务器。