使用Jenkins+gitlab自動化打包

簡介

Jenkins

Jenkins,一個用Java編寫的開源的持續集成工具,提供了軟件開發的持續集成服務,可監控並觸發持續重複的工作,具有開源,支持多平臺和插件擴展,安裝簡單,界面化管理等特點。

Gitlab

GitLab是一個利用Ruby on Rails開發的開源應用程序,實現一個自託管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目。

持續集成

持續集成, 簡稱CI(continuous integration).
CI作爲敏捷開發重要的一步,其目的在於讓產品快速迭代的同時,儘可能保持高質量.
CI一種可以增加項目可見性,降低項目失敗風險的開發實踐。其每一次代碼更新,都要通過自動化測試來檢測代碼和功能的正確性,只有通過自動測試的代碼才能進行後續的交付和部署.
CI 是團隊成員間(產研測)更好地協調工作,更好的適應敏捷迭代開發,自動完成減少人工干預,保證每個時間點上團隊成員提交的代碼都能成功集成的,可以很好的用於對Android/iOS項目的打包.

Jenkins打包流程

安裝

安裝Jenkins

Jenkins依賴於Java運行環境,因此需要首先安裝Java。
安裝Jenkins的方式有多種,可以運行對應系統類型的安裝包,可以通過docker獲取鏡像,也可以直接運行war包。
我個人傾向於直接運行war包的形式,只需下載jenkins.war後,運行如下命令即可啓動Jenkins。

$ nohup java -jar jenkins_located_path/jenkins.war –httpPort=88 &

如果不指定httpPort,Jenkins的默認端口爲8080。

Jenkins插件安裝

這裏寫圖片描述

實用插件

  • iOS專用:Xcode integration
  • Android專用:Gradle plugin
  • Gitlab插件:GitLab Plugin 和 Gitlab Hook Plugin
  • Git插件: Git plugin
  • GitBuckit插件: GitBuckit plugin
  • 簽名證書管理插件: Credentials Plugin 和Keychains and Provisioning Profiles Management
  • FTP插件: Publish over FTP
  • 腳本插件: Post-Build Script Plug-in
  • 修改Build名稱/描述(二維碼): build-name-setter / description setter plugin
  • 獲取倉庫提交的commit log: Git Changelog Plugin
  • 自定義全局變量: Environment Injector Plugin
  • 自定義郵件插件: Email Extension Plugin
  • 獲取當前登錄用戶信息: build-user-vars-plugin
  • 顯示代碼測試覆蓋率報表: Cobertura Plugin
    來展示生成的單元測試報表,支持一切單測框架,如junit、nosetests等: Junit Plugin
  • 其它: GIT plugin / SSH Credentials Plugin

創建項目(Job)

在Jenkins中,構建項目以Job的形式存在,因此需要針對每個項目創建一個Job。有時候,一個項目中可能有多個分支同時在進行開發,爲了分別進行構建,也可以針對每個分支創建一個Job。
創建Job的方式有多種,本次只需要創建Freestyle project類型的即可。

Main page -> New Item -> Freestyle project

對於一個持續集成打包平臺,每次打包都由4步組成:觸發構建、拉取代碼、執行構建、構建後處理。對應的,在每個Job中也對應了這幾項的配置。

Jenkins Jobs配置

1.新建job;
2.配置Git代碼倉庫

配置Git代碼倉庫時,有三項是必須配置的:
倉庫URL地址(Repository URL)
倉庫權限校驗方式(Credentials)
以及當前Job需要構建的代碼分支(Branches to build)

3.配置構建觸發器

比如常用的有:
定期進行構建(Build periodically)
根據提交進行構建(Build when a change is pushed to GitHub)
定期檢測代碼更新,如有更新則進行構建(Poll SCM)

4.配置構建方式

常用的構建方式是根據構建對象的具體類型,安裝對應的插件,然後採用相應的構建方式。
採用腳本配置打包

5.構建後處理

上傳安裝包文件,生成二維碼
展示二維碼圖片
收集編譯成果物(Artifacts)

參考:http://debugtalk.com/post/iOS-Android-Packing-with-Jenkins/

Jenkins持續集成打包平臺構建

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章