注意:此以我公司為例,以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服務器。