一、基本配置
1、安裝Jenkins
? ? 在Mac環境下,需要先安裝JDK,安裝完成后在Jenkins官網(https://jenkins.io/index.html)下載最新的war包,下載完成后,打開終端進入到war包所在目錄,執行如下命令:java -jar jenkins.war --httpPort=8088
? ? 其中httpPort是Jenkins所使用的http端口,待Jenkins啟動后在瀏覽器輸入如下地址:http://localhost:8088
? ? 這樣就打開Jenkins管理頁面了,進入到頁面后會提示你輸入密碼,根據頁面給的路徑找到密碼,然后點擊‘continue’到下一步,點擊‘Install suggested plugins’安裝推薦的插件。
2、創建管理員用戶
? ? 上述步驟完成后會進入到創建管理員用戶界面,此管理員用戶就是進入Jenkins需要的,這里創建管理員用戶名為admin,密碼為123456。
3、安裝需要的插件
? ? ?上述步驟完成后,會進入到Jenkins的主頁面,然后要安裝一些需要的插件;點擊‘系統管理’->‘管理插件’,先在‘已安裝’中查看已安裝的插件,如果沒有找到則可以在‘可選插件’搜索到需要的插件的并安裝。
此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首頁,點擊‘創建一個新任務’,輸入項目名稱然后選擇‘構建一個自由風格的軟件項目’。
勾選‘丟棄舊的構建’,然后設置保持構建的天數和保持構建的最大個數。
源碼管理,選擇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、構建觸發器
? ? 觸發遠程構建,設置身份驗證令牌,然后可以通過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點執行build(H 20 * * *)。
Poll SCM(poll source cod management)輪詢源碼管理,格式和上面通用,如每5分鐘輪詢一次(H/5 * * * *)。
6、構建環境
? ? 構建環境主要對打包需要的證書進行配置,由于我們在構建腳本里面配置了證書,所以這里不做配置。
7、構建
? ? Execute shell(構建腳本),具體見腳本文件注釋。
二、項目進階配置
1、參數化構建過程
? ? 在項目配置的‘General’勾選‘參數化構建過程’,這里用到了兩種方式‘Choice’和‘String Parameter’。
‘Choice’,點擊‘添加參數’->‘Choice’,列如配置不同的打包環境,‘Name’設置為archive_type,‘Choices’填寫不同環境的參數,每個參數之前用換行符隔開。
‘String Parameter’,點擊‘添加參數’->‘String Paramter’,列如配置打包的版本號,‘
Name’設置為enterprise_version_string,‘默認值’設置為1.0。
設置完后,我們可以在下面的配置(如源碼管理、shell腳本等)中用到該參數,訪問方式為${archive_type},archive_type為設置的參數的‘Name’。
2、上傳文件到sftp
? ? 首先要安裝插件‘Publish Over SSH’,安裝完成后到‘系統管理’->‘系統設置’的‘Publish over SSH’進行設置。
公共配置:
Passphrase:密碼(key的密碼,如果你設置了)
Path to key:key文件(私鑰)的路徑(在終端運行ssh-keygen,連續回車后~/.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:選個一個你在系統設置里配置的配置的名字
Transfer Set Source files:需要上傳的文件(注意:相對于工作區的路徑。看后面的配置可以填寫多個,默認用,分隔)
Remove prefix:移除目錄(只能指定Transfer Set Source files中的目錄)
Remote directory:遠程目錄(根據你的需求填寫吧,因為我這兒是測試,所以偷懶沒有填寫。默認會繼承系統配置)
Exec command:把你要執行的命令寫在里面
高級:
Exclude files:排除的文件(在你傳輸目錄的時候很有用,使用通配符,例如:**/*.log,**/*.tmp,.Git/)
Pattern separator:分隔符(配置Transfer Set Source files的分隔符。如果你這兒更改了,上面的內容也需要更改)
No default excludes:禁止默認的排除規則(具體的自己看幫助)
Make empty dirs:此選項會更改插件的默認行為。默認行為是匹配該文件是否存在,如果存在則創建目錄存放。選中此選項會直接創建一個目錄存放文件,即使是空目錄。(個人理解)
Flatten files:只上傳文件,不創建目錄(除了遠程目錄)
3、郵件通知
? ? 首先要在‘系統管理’->‘系統設置’->‘Jenkins Location’設置系統管理員郵件地址,然后在‘郵件通知’里面進行下面設置:
SMTP服務器:smtp.163.com
用戶默認郵件后綴:@163.com
點擊高級并勾選‘使用SMTP認證’,然后設置用戶名(不用帶后綴)和密碼(在郵件開啟POP3/SMTP服務時設置的授權密碼),這里的用戶要和管理員郵件是一致的,否則有報錯。
然后下項目配置中‘構建后操作’增加‘E-mail Notification’,在‘Recipients’填寫需要通知的郵箱地址,可以填寫多個郵箱地址,中間有空格分開;勾選‘每次不穩定的構建都發送郵件通知’。