構建持續集成Jenkins

轉:http://www.itiger.me/?p=30git

Jenkins+Github+Testflight在Mac下搭建持續集成環境 程序員

關於持續集成的基本概念,能夠看一看持續集成學習筆記-入門篇(1)持續集成基本概念,也可自行Google。xcode

爲了讓你們先有個宏觀的概念,我把該文中提到持續集成使用階段主要步驟抄在這裏:瀏覽器

  1. 程序員從源代碼倉庫下載最新程序
  2. 程序員編寫代碼、測試用例,並提交更新結果給版本控制倉庫
  3. CI服務器根據觸發條件,從版本控制倉庫提取最新代碼,交給構建工具的工做空間
  4. 構建工具對代碼進行編譯、測試,並進行打包。若有必要,實現產品部署、發佈
  5. 經過構建工具與版本控制工具的配合,實現產品版本控制與管理
  6. 創建、管理項目開發的工做網站

本文將詳細介紹如何Mac下搭建Jenkins+Github+Testflight持續集成環境,那就閒話很少說了,直接上步驟服務器

1.下載安裝包:http://jenkins-ci.org/

2.安裝後在瀏覽器訪問http://localhost:8080/

3.安裝插件

系統管理 -> 管理插件 -> 可選插件
依次找到git plugin、github plugin、Xcode plugin、Testfilght plugin 並安裝app

4.系統設置

找到 Test Flight這一欄 並在相應位置填入API Token和team Token(須要你到https://testflightapp.com註冊申請哈), 不要忘記頁面最下方點保存 Test Flight Tokenssh

5.新建job

選擇「構建一個自由風格的軟件項目」,建立一個新任務 new jobide

 

6.任務配置

6.1 源碼管理

 若是是一個public repository,選擇Git並在Repository URL中直接填入github源碼倉庫地址便可。工具

這裏想說一下Private 私有項目:

  • 在github中複製SSH URL(以下圖),將地址貼到Repository URL

  • 打開終端爲名爲jenkins的用戶設置一個密碼

    sudo dscl . passwd /Users/jenkins YourPassword

  • 以jenkins用戶身份生成ssh key,並與github賬號關聯

    su jenkins
    剩下的部分偷個懶,你們按照這裏的步驟繼續進行。Step 3中讓你複製剛剛生成的key到剪切板pbcopy < ~/.ssh/id_rsa.pub就改爲vi ~/.ssh/id_rsa.pub而後手動複製這個key,剩下的和剛纔文檔同樣繼續進行。

6.2 構建觸發器

觸發器,就是設置發生了什麼事件來觸發構建,咱們在一開始安裝了gitbub Plugin插件,因此能夠選擇「Build when a change is pushed to GitHub」,你也能夠在設置每隔15分鐘就構建一次(以下圖) 

6.3 設置構建步驟

構建 -> 增長構建步驟 -> Xcode
其實Xcode Plugin這個插件其實本質上仍是用的xcodebuild的命令行,因此請確保你的Xcode中 Command Line Tools已經安裝。

其餘的設置比較簡單就不說了,就說說關於證書這一塊吧

若是在構建中出現了」Code Sign error: There are no valid certificate/private key pairs in the default keychain」這個錯誤,到你的鑰匙串串中,把有關iPhone開發的證書從「登陸」便籤複製一份到「系統」標籤裏面。

這個問題解決之後你會遇到下一個錯誤 「Code Sign error: Provisioning profile ‘xxxxx-xxxx-xxxx-xxxxx’ can’t be found」
解決這個問題也很簡單,找到相應的.mobileprovision文件,將其複製到/Users/Shared/Jenkins/Library/MobileDevice/Provisioning Profile就能夠了

6.4 設置構建後操做

構建後操做 -> add post-build action -> Upload to Testflight
點擊保存,任務配置就算大功告成了~

7.見證奇蹟的時刻

點擊「當即構建」,若是一切順利,幾分鐘後構建完成,測試人員就能夠在Testflight上安裝最新的測試版本了。good luck!

8.寫在最後

我也是初學者,本文若有不對之處歡迎你們留言指正。

相關文章
相關標籤/搜索