目錄java
簡單繪製了下Jenkins的一個流程,以下圖:ios
IBM Developer上也有一個看似更復雜一點的圖,以下圖 git
官網: https://jenkins.io/index.html
下載: http://mirrors.jenkins-ci.org/war/latest/jenkins.war shell
安裝: 服務器
啓動 oracle
插件安裝app
操做: Manage Jenkins -> Manage Plugins -> Available -> Search -> Click to install,以下圖所示框架
實用插件
操做: Manage Jenkins -> Configure System
SMTP詳細配置請參考 How to send Email at every build with Jenkins
配置編譯參數
例如,若是須要打包者自行選擇打包類型,如須要編譯Release/Debug/Test等不一樣版本的包,那須要配置Jobs的編譯參數,配置方法以下圖所示:
你還能夠配置一些其它參數,例如:
配置完後,build界面中就會出現,以下如所示:
How to configure a single Jenkins job to make the release process from trunk or branches?
配置匿名用戶權限
後面打包的應用發佈時,若是懶得本身搭建服務器,就用Jenkins的,但發佈出去的連接須要登陸才能訪問,這時候你能夠設置匿名用戶的訪問權限,這樣匿名用戶能夠下載訪問你提供的應用連接了,很是取巧的方法,以下圖:
配置SSH
操做: Manage Jenkins -> Credentials -> Global credentials (unrestricted) -> Add Credentials
新建Job
在Jenkins中,全部的任務都是以」Job」爲單位的。在進行操做前,你須要新建一個Job,Job新建比較簡單,只須要在Jenkins管理的首頁左側,點擊「New Job」,通常選擇free-style software project,再輸入Job的名字便可。
配置Gitlab
在新建的任務(Jobs)中,Gitlab源碼配置以下圖:須要輸入git倉庫和build分支,公鑰使用上面配置SSH生成的公鑰。
Jenkins支持多種觸發器配置,包括:
按期進行構建(Build periodically),定時器使用示例以下:
H(25-30) 18 1-5: 工做日下午6點25到30分之間進行build
H 23 1-5:工做日每晚23:00至23:59之間的某一時刻進行build
H(0-29)/15 :前半小時內每隔15分鐘進行build(開始時間不肯定)
H/20 :每隔20分鐘進行build(開始時間不肯定)
根據提交進行構建(Build when a change is pushed to GitHub)
Jenkins支持多種編譯配置方式,包括:
對於iOS應用的構建,若是選擇Xcode方式構建,須要配置好開發者證書,具體參考後面簽名和整數問題。
推薦使用Exceute Shell方式,簡單有效。
Artifacts和郵件通知配置,參考下圖
可藉助Email Extension Plugin 插件進行詳細配置,具體可參考此文
發佈
固然,若是不想本身的應用發佈到三方網站,只但願在本身的內網上託管,這樣須要在本身內網上搭建服務器,服務器搭建方式有不少種,Mac上能夠用自帶的Apache服務,也能夠用其它服務。
iOS的發佈可能但願用到OTA,可參考此文 還有這篇一步一步實現無線安裝iOS應用(內網OTA)
這裏分享一個我寫的shell腳本模板(已開源),能夠用於iOS的plist文件自動建立以及OTA簡單發佈頁面的自動建立,參考此連接獲取源碼, 歡迎Star.
自動生成一個簡單HTML界面,以下圖,點擊Install便可安裝:
注意,這裏iOS7.1之後限定必需要要用https,因此須要對jenkins設置下https,參考下面」後記」 中的Jenkins Https設置
Last Show
構建成功後最終的結果以下如所示:
查詢Jenkins Https相關命令:
1
|
java -jar jenkins.war --help | grep -i https
|
說明:下面以Mac爲例.
KeyStore方式
1
|
keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass 密碼 -dname "cn=WEB"
|
1
|
java -jar jenkins.war --httpPort=-1 --httpsPort=8080 --httpsKeyStore=/目錄/keystore.jks --httpsKeyStorePassword=密碼
|
Certificate方式
1
2
3
4
5
|
sudo openssl genrsa -out server.key 2048
sudo openssl req -new -key server.key -out server.csr
sudo openssl genrsa -out ca.key 1024
sudo openssl req -new -x509 -days 365 -key ca.key -out ca.crt
sudo openssl ca -in server.csr -out server.crt -cert ca.crt -keyfile ca.key
|
啓動Jenkins:
1
|
java -jar jenkins.war --httpsPort=8088 --httpsCertificate=/path/server.crt --httpsPrivateKey=/path/server.key
|
實用參考
本文首發於skyseraph.com:「Jenkins Gitlab持續集成打包平臺搭建」
同步發表/轉載 cnBlogs / CSDN / …