Jenkins
持續集成(Continuous Integration 簡稱
CI
)。Jenkins 是一個開源項目,提供了一種易于使用的持續集成系統,使開發者從繁雜的集成中解脫出來,專注于更為重要的業務邏輯實現上。具體就不多說了,想要更多的了解可以去查一下,下面是集成方法。
本文最終目的:
- 測試人員可登錄
Jenkins
網頁自行選擇開發分支
和打包類型
,然后自動打包完成并自動上傳至蒲公英
或iTunes Connect
,不再需要開發人員手動安裝或上傳。
1. 配置 Fastlane
由于項目的編譯打包以及上傳全部要依賴 Fastlane
來進行,所以在配置 Jenkins
之前要保證項目已經配置好了 Fastlane
,這里看我的另一篇文章:【iOS 開發】使用 Fastlane 自動化打包并發布 iOS 項目 。
2. 安裝 Jenkins
Jenkins
依賴于Java
運行環境,因此需要先保證電腦已經安裝了Java JDK
,如果沒有的話前往 這里 下載安裝即可。我這里是使用 homebrew 安裝
Jenkins
,沒有安裝homebrew
的輸入以下命令安裝一下。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
千萬不要去
Jenkins
官網下載pkg
安裝包安裝,因為用安裝包安裝會自動生成一個共享用戶jenkins
,而這個用戶的權限和系統登錄用戶的權限不同,會造成大量的權限問題,我已經被坑慘了,用homebrew
裝是不會生成共享用戶的。homebrew
安裝完成后輸入以下命令安裝Jenkins
。
brew install jenkins
安裝
- 如果想要卸載直接執行以下命令即可卸載
Jenkins
。
brew uninstall jenkins
- 安裝完成后輸入以下命令鏈接
launchd
配置文件。
ln -sfv /usr/local/opt/jenkins/*.plist ~/Library/LaunchAgents
- 然后執行以下命令啟動
Jenkins
。
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
-
Jenkins
默認是開機自動啟動的,如果想關閉就執行以下命令即可關閉。
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.jenkins.plist
- 接著打開瀏覽器,輸入 http://localhost:8080 ,就可以看到
Jenkins
已經啟動。
Jenkins
-
Jenkins
默認端口號是8080
,如果想要更改端口號的話可以用Xcode
打開以下文件,將httpPort
后面的8080
改成你想要的端口號即可,如果想要別人訪問你的Jenkins
服務器,只要把httpListenAddress
改為0.0.0.0
即可,改完重啟后生效。
/usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist
修改端口
3. 配置 Jenkins
- 等待啟動完成后 ,會出現以下界面讓你輸入密碼解鎖。
Jenkins
- 密碼就在上面提示的
/Users/Jonzzs/.jenkins/secrets/initialAdminPassword
文件中,打開initialAdminPassword
文件將密碼復制到瀏覽器解鎖即可,然后點擊第一個Install suggested plugins
。
Jenkins
- 然后等待插件全部安裝完成。
Jenkins
- 安裝完成后會跳出創建用戶界面,按照提示創建用戶即可。
Jenkins
- 最后到這個頁面就算是安裝完成了。
Jenkins
4. 安裝插件
- 在建任務之前需要先安裝幾個插件,前往
系統管理
-管理插件
,在可選插件
中搜索GitLab Plugin
、Gitlab Hook Plugin
、Xcode integration
這三個插件,然后安裝。
Jenkins
5. 配置環境變量
- 前往
系統管理
-系統設置
找到全局屬性
,然后添加以下三個環境變量。
LANG
en_US.UTF-8
LANGUAGE
en_US.UTF-8
LC_ALL
en_US.UTF-8
環境變量
- 這三個環境變量是用來修改編碼格式的,如果不加下面腳本執行
fastlane
命令時會報錯。
6. 創建任務
- 插件安裝完成以后就可以開始創建項目了,點擊新建任務,輸入你的項目名稱。
Jenkins
- 勾選
參數化構建過程
,添加一個String Parameter
和一個Choice Parameter
,第一個ARCHIVE_BRANCH
主要是輸入要打包的項目分支,第二個ARCHIVE_TYPE
是選擇打包的類型,我這邊beta
是打包發布到蒲公英
,release
是打包發布到iTunes Connect
,如果你不需要這些參數可以跳過。
Jenkins
- 在
源碼管理
輸入你的倉庫地址,地址為SSH
方式,然后需要在點擊Add
添加SSH Key
。
Jenkins
- 選擇
SSH Username with private key
類型,Username
隨便填,然后選擇From the Jenkins master ~/.ssh
,添加完之后在Credentials
那里選擇即可。
Jenkins
如果自己電腦沒有生成過
SSH Key
,就自己去查一下吧,這里就不重復了。最后在
構建
中增加一個Execute Shell
,主要用來填寫腳本內容。
Jenkins
- 填寫以下腳本命令,
xxx
處填寫自己項目相應文件夾名,因為在執行fastlane
指令之前需要進入fastlane
文件夾所在目錄,如果你的git
根目錄就是在項目目錄的話,可以不用這句,然后點擊保存
即可。
git checkout ${ARCHIVE_BRANCH}
git pull
cd ./xxx
fastlane ${ARCHIVE_TYPE}
7. 開始打包
- 進入你創建的任務,點擊
Build with Parameters
,然后輸入要打包的項目分支以及類型,然后點擊開始構建
即可開始打包。
Jenkins
- 如果構建失敗,也可以在
Build History
中點擊Console Output
查看控制臺輸出記錄,找到錯誤原因。
Jenkins
配置方法到這里就完成了,有不明白的地方可以留言。
將來的你,一定會感激現在拼命的自己,愿自己與讀者的開發之路無限美好。