一哼蛆、基本配置
1篇亭、安裝Jenkins
? ? 在Mac環(huán)境下,需要先安裝JDK,安裝完成后在Jenkins官網(https://jenkins.io/index.html)下載最新的war包孽江,下載完成后辜腺,打開終端進入到war包所在目錄,執(zhí)行如下命令:java -jar jenkins.war --httpPort=8088
? ? 其中httpPort是Jenkins所使用的http端口碉渡,待Jenkins啟動后在瀏覽器輸入如下地址:http://localhost:8088
? ? 這樣就打開Jenkins管理頁面了,進入到頁面后會提示你輸入密碼聚谁,根據頁面給的路徑找到密碼,然后點擊‘continue’到下一步滞诺,點擊‘Install suggested plugins’安裝推薦的插件形导。
2、創(chuàng)建管理員用戶
? ? 上述步驟完成后會進入到創(chuàng)建管理員用戶界面习霹,此管理員用戶就是進入Jenkins需要的,這里創(chuàng)建管理員用戶名為admin,密碼為123456朵耕。
3、安裝需要的插件
? ? ?上述步驟完成后淋叶,會進入到Jenkins的主頁面阎曹,然后要安裝一些需要的插件;點擊‘系統(tǒng)管理’->‘管理插件’,先在‘已安裝’中查看已安裝的插件处嫌,如果沒有找到則可以在‘可選插件’搜索到需要的插件的并安裝栅贴。
此iOS項目大概需要如下插件:
svn插件 —- ‘Subversion Plug-in’,證書插件 —- ‘Credentials Plugin’,‘Keychains and Provisioning Profiles Management’熏迹,ftp(sftp)插件 —- ‘Publish over FTP’檐薯、‘Publish Over SSH’,安裝腳本插件 —- ‘Post-Build Script Plug-in’注暗。
4坛缕、構建項目
? ? 上述插件安裝完成后,就可以配置一個構建項目了友存;進入Jenkins首頁祷膳,點擊‘創(chuàng)建一個新任務’,輸入項目名稱然后選擇‘構建一個自由風格的軟件項目’屡立。
勾選‘丟棄舊的構建’直晨,然后設置保持構建的天數和保持構建的最大個數。
源碼管理膨俐,選擇Subversion,設置svn的Repository URL:https://username@xxx.xxx.xxx.xxx:8443/svn/xxx勇皇;然后設置Credentials,點擊后面的Add按鈕添加svn賬號及密碼,Kind選擇‘Username with password’,也可以在Jenkins首頁‘Credentials’->’global credentials’->’Add Credentials’添加svn賬號焚刺。
5敛摘、構建觸發(fā)器
? ? 觸發(fā)遠程構建,設置身份驗證令牌乳愉,然后可以通過url進行遠程構建兄淫,jenkins地址/job/job名稱/build??token=口令&cause=書寫構建原因 ,例如:http://192.168.1.20:8088/job/bgzs/build?token=123456&cause=書寫構建原因蔓姚。
Build periodically(定時build)捕虽,格式是這樣的,分鐘(0-59) 小時(0-23) 日期(1-31) 月(1-12) 周幾(0-7,0和7都是周日)坡脐,如每天20點執(zhí)行build(H 20 * * *)泄私。
Poll SCM(poll source cod management)輪詢源碼管理,格式和上面通用备闲,如每5分鐘輪詢一次(H/5 * * * *)晌端。
6、構建環(huán)境
? ? 構建環(huán)境主要對打包需要的證書進行配置恬砂,由于我們在構建腳本里面配置了證書咧纠,所以這里不做配置。
7泻骤、構建
? ? Execute shell(構建腳本),具體見腳本文件注釋惧盹。
二乳幸、項目進階配置
1、參數化構建過程
? ? 在項目配置的‘General’勾選‘參數化構建過程’钧椰,這里用到了兩種方式‘Choice’和‘String Parameter’。
‘Choice’符欠,點擊‘添加參數’->‘Choice’嫡霞,列如配置不同的打包環(huán)境,‘Name’設置為archive_type,‘Choices’填寫不同環(huán)境的參數希柿,每個參數之前用換行符隔開诊沪。
‘String Parameter’渠欺,點擊‘添加參數’->‘String Paramter’盟迟,列如配置打包的版本號,‘
Name’設置為enterprise_version_string讹俊,‘默認值’設置為1.0挤悉。
設置完后渐裸,我們可以在下面的配置(如源碼管理、shell腳本等)中用到該參數装悲,訪問方式為${archive_type},archive_type為設置的參數的‘Name’昏鹃。
2、上傳文件到sftp
? ? 首先要安裝插件‘Publish Over SSH’,安裝完成后到‘系統(tǒng)管理’->‘系統(tǒng)設置’的‘Publish over SSH’進行設置诀诊。
公共配置:
Passphrase:密碼(key的密碼洞渤,如果你設置了)
Path to key:key文件(私鑰)的路徑(在終端運行ssh-keygen,連續(xù)回車后~/.ssh/id_rsa就是私鑰)
Key:將私鑰復制到這個框中
Disable exec:禁止運行命令
私有配置:
SSH Server Name:標識的名字(隨便你取什么)
Hostname:需要連接ssh的主機名或ip地址(建議ip)
Username:用戶名
Remote Directory:遠程目錄
Use password authentication, or use a different key:勾選,然后輸入sftp用戶名對應的密碼
私有配置的高級:
Port:端口(默認22)
Timeout (ms):超時時間(毫秒)默認即可
Disable exec:禁止運行命令
Test Configuration:測試連接
上述設置完成后属瓣,即可到項目中配置sftp文件上傳载迄;到‘構建’->‘增加構建步驟’選擇‘Send files or execute commands over SSH’進行如下配置。
基本配置:
SSH? Server Name:選個一個你在系統(tǒng)設置里配置的配置的名字
Transfer Set Source files:需要上傳的文件(注意:相對于工作區(qū)的路徑抡蛙』っ粒看后面的配置可以填寫多個,默認用,分隔)
Remove prefix:移除目錄(只能指定Transfer Set Source files中的目錄)
Remote directory:遠程目錄(根據你的需求填寫吧溜畅,因為我這兒是測試,所以偷懶沒有填寫捏卓。默認會繼承系統(tǒng)配置)
Exec command:把你要執(zhí)行的命令寫在里面
高級:
Exclude files:排除的文件(在你傳輸目錄的時候很有用,使用通配符慈格,例如:**/*.log,**/*.tmp,.Git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符怠晴。如果你這兒更改了,上面的內容也需要更改)
No default excludes:禁止默認的排除規(guī)則(具體的自己看幫助)
Make empty dirs:此選項會更改插件的默認行為浴捆。默認行為是匹配該文件是否存在蒜田,如果存在則創(chuàng)建目錄存放。選中此選項會直接創(chuàng)建一個目錄存放文件选泻,即使是空目錄冲粤。(個人理解)
Flatten files:只上傳文件美莫,不創(chuàng)建目錄(除了遠程目錄)
3、郵件通知
? ? 首先要在‘系統(tǒng)管理’->‘系統(tǒng)設置’->‘Jenkins Location’設置系統(tǒng)管理員郵件地址梯捕,然后在‘郵件通知’里面進行下面設置:
SMTP服務器:smtp.163.com
用戶默認郵件后綴:@163.com
點擊高級并勾選‘使用SMTP認證’厢呵,然后設置用戶名(不用帶后綴)和密碼(在郵件開啟POP3/SMTP服務時設置的授權密碼),這里的用戶要和管理員郵件是一致的,否則有報錯傀顾。
然后下項目配置中‘構建后操作’增加‘E-mail Notification’,在‘Recipients’填寫需要通知的郵箱地址襟铭,可以填寫多個郵箱地址,中間有空格分開短曾;勾選‘每次不穩(wěn)定的構建都發(fā)送郵件通知’寒砖。