真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JenkinsGitlab持續(xù)集成打包平臺搭建-創(chuàng)新互聯(lián)

相關(guān)概念

Jenkins

  • Jenkins,一個用Java編寫的開源的持續(xù)集成工具,提供了軟件開發(fā)的持續(xù)集成服務(wù),可監(jiān)控并觸發(fā)持續(xù)重復(fù)的工作,具有開源,支持多平臺和插件擴展,安裝簡單,界面化管理等特點。更多介紹參考[維基](https://en.wikipedia.org/wiki/Jenkins_(software)介紹.

    在攸縣等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計、網(wǎng)站制作 網(wǎng)站設(shè)計制作定制制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都營銷網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站制作,攸縣網(wǎng)站建設(shè)費用合理。

Gitlab

  • GitLab是一個利用Ruby on Rails開發(fā)的開源應(yīng)用程序,實現(xiàn)一個自托管的Git項目倉庫,可通過Web界面進行訪問公開的或者私人項目,更多介紹參考維基介紹.

持續(xù)集成

  • 持續(xù)集成, 簡稱CI(continuous integration).

  • CI作為敏捷開發(fā)重要的一步,其目的在于讓產(chǎn)品快速迭代的同時,盡可能保持高質(zhì)量.

  • CI一種可以增加項目可見性,降低項目失敗風(fēng)險的開發(fā)實踐。其每一次代碼更新,都要通過自動化測試來檢測代碼和功能的正確性,只有通過自動測試的代碼才能進行后續(xù)的交付和部署.

  • CI 是團隊成員間(產(chǎn)研測)更好地協(xié)調(diào)工作,更好的適應(yīng)敏捷迭×××發(fā),自動完成減少人工干預(yù),保證每個時間點上團隊成員提交的代碼都能成功集成的,可以很好的用于對Android/iOS項目的打包.

蒲公英

  • 蒲公英(pgyer)為移動開發(fā)者提供App免費測試分發(fā)應(yīng)用的服務(wù)平臺,支持iOS與Android,簡單兩步分發(fā)應(yīng)用。類似的還有fir.im等.

流程結(jié)構(gòu)

簡單繪制了下Jenkins的一個流程,如下圖:

 Jenkins Gitlab持續(xù)集成打包平臺搭建

IBM Developer上也有一個看似更復(fù)雜一點的圖,如下圖
 Jenkins Gitlab持續(xù)集成打包平臺搭建

持續(xù)交互流程圖:
 Jenkins Gitlab持續(xù)集成打包平臺搭建

平臺搭建

Jenkins安裝和啟動

官網(wǎng): https://jenkins.io/index.html
下載: http://mirrors.jenkins-ci.org/war/latest/jenkins.war

安裝:

  • 依賴于Java環(huán)境,首先安裝和配置Java環(huán)境

  • 到官網(wǎng)下載Jenkins,雙擊安裝,如果是Mac電腦,會自動生成全局變量jenkins

  • 修改參數(shù): jenkins + 相關(guān)參數(shù),如
    jenkins –httpPort=8888 #更換端口號,當(dāng)默認(rèn)端口8080被占用,或指定特定端口時。

啟動

  • 手動啟動: java -jar jenkins.war

  • 后臺啟動(默認(rèn)端口): nohup java -jar jenkins.war &

  • 后臺啟動(指定端口): nohup java -jar jenkins.war -httpPort=88 &

  • 后臺啟動(HTTPS): nohup java -jar jenkins.war -httpsPort=88 &

  • 瀏覽:http://localhost:8080/ , localhost可配置

Jenkins插件安裝

插件安裝

操作: Manage Jenkins -> Manage Plugins -> Available -> Search -> Click to install,如下圖所示

 Jenkins Gitlab持續(xù)集成打包平臺搭建

 Jenkins Gitlab持續(xù)集成打包平臺搭建

實用插件

  • 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

  • 獲取當(dāng)前登錄用戶信息: build-user-vars-plugin

  • 顯示代碼測試覆蓋率報表: Cobertura Plugin

  • 來展示生成的單元測試報表,支持一切單測框架,如junit、nosetests等: Junit Plugin

  • 其它: GIT plugin / SSH Credentials Plugin

Jenkins系統(tǒng)設(shè)置

操作: Manage Jenkins -> Configure System

  • Jenkins內(nèi)部shell UTF-8 編碼設(shè)置,如下圖所示

 Jenkins Gitlab持續(xù)集成打包平臺搭建

  • Jenkins Location和Email設(shè)置,如下圖所示

 Jenkins Gitlab持續(xù)集成打包平臺搭建

  • E-mail Notification,設(shè)置如下如所示

 Jenkins Gitlab持續(xù)集成打包平臺搭建

SMTP詳細(xì)配置請參考 How to send Email at every build with Jenkins

Jenkins Jobs配置

Jobs基礎(chǔ)配置

配置編譯參數(shù)

例如,如果需要打包者自行選擇打包類型,如需要編譯Release/Debug/Test等不同版本的包,那需要配置Jobs的編譯參數(shù),配置方法如下圖所示:

 Jenkins Gitlab持續(xù)集成打包平臺搭建

你還可以配置一些其它參數(shù),例如:

 Jenkins Gitlab持續(xù)集成打包平臺搭建

配置完后,build界面中就會出現(xiàn),如下如所示:

 Jenkins Gitlab持續(xù)集成打包平臺搭建

How to configure a single Jenkins job to make the release process from trunk or branches?

配置匿名用戶權(quán)限

后面打包的應(yīng)用發(fā)布時,如果懶得自己搭建服務(wù)器,就用Jenkins的,但發(fā)布出去的鏈接需要登錄才能訪問,這時候你可以設(shè)置匿名用戶的訪問權(quán)限,這樣匿名用戶可以下載訪問你提供的應(yīng)用鏈接了,非常取巧的方法,如下圖:

 Jenkins Gitlab持續(xù)集成打包平臺搭建

Jobs源碼庫配置(Gitlab為例)

配置SSH

操作: Manage Jenkins -> Credentials -> Global credentials (unrestricted) -> Add Credentials

  1. 本機生成SSH:ssh-keygen -t rsa -C “Your email” , 生成過程中需設(shè)置密碼,最終生成id_rsa和id_rsa.pub(公鑰)

  2. 本機添加秘鑰到SSH:ssh-add 文件名(需輸入管理密碼)

  3. Gitlab上添加公鑰:復(fù)制id_rsa.pub里面的公鑰添加到Gitlab

  4. Jenkins上配置密鑰到SSH:復(fù)制id_rsa.pub里面的公鑰添加到Jenkins(private key選項)

新建Job

在Jenkins中,所有的任務(wù)都是以”Job”為單位的。在進行操作前,你需要新建一個Job,Job新建比較簡單,只需要在Jenkins管理的首頁左側(cè),點擊“New Job”,一般選擇free-style software project,再輸入Job的名字即可。

配置Gitlab

在新建的任務(wù)(Jobs)中,Gitlab源碼配置如下圖:需要輸入Git倉庫和build分支,公鑰使用上面配置SSH生成的公鑰。

 Jenkins Gitlab持續(xù)集成打包平臺搭建

Jobs觸發(fā)條件配置

Jenkins支持多種觸發(fā)器配置,包括:

  • 定期進行構(gòu)建(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 * * * *:前半小時內(nèi)每隔15分鐘進行build(開始時間不確定)
    H/20 * * * *:每隔20分鐘進行build(開始時間不確定)

  • 根據(jù)提交進行構(gòu)建(Build when a change is pushed to GitHub)

  • 定期檢測代碼更新,如有更新則進行構(gòu)建(Poll SCM)

Jobs構(gòu)建方式/編譯 配置

Jenkins支持多種編譯配置方式,包括:

  • Xcode: iOS編譯配置(安裝Xcode integration插件)

  • Invoke Gradle script: Android編譯配置(安裝Gradle plugin插件)

  • Exceute Shell: 腳本方式

對于iOS應(yīng)用的構(gòu)建,如果選擇Xcode方式構(gòu)建,需要配置好開發(fā)者證書,具體參考后面簽名和整數(shù)問題。
推薦使用Exceute Shell方式,簡單有效。

Jobs構(gòu)建后處理

Artifacts和郵件通知配置,參考下圖

 Jenkins Gitlab持續(xù)集成打包平臺搭建

可借助Email Extension Plugin 插件進行詳細(xì)配置,具體可參考此文

 Jenkins Gitlab持續(xù)集成打包平臺搭建

發(fā)布

  • FTP服務(wù)器, 最傳統(tǒng)的方式,可助蒲公英或者fir.im(安裝對應(yīng)的Jenkins插件)。

  • 專業(yè)的Artifacts存儲倉庫, 比如Nexus, Artifactory等。

  • 對象存儲服務(wù):比如阿里云OSS,AWS S3等,以阿里云為例,具體請參考此文 在Jenkins持續(xù)集成方案中使用阿里云OSS作為Artifacts倉庫

iOS的發(fā)布可能希望用到OTA,可參考此文

這里分享一個我寫的shell腳本模板(已開源),可以用于iOS的plist文件自動創(chuàng)建以及OTA簡單發(fā)布頁面的自動創(chuàng)建,參考此鏈接獲取源碼, 歡迎Star.

自動生成一個簡單HTML界面,如下圖,點擊Install即可安裝:

 Jenkins Gitlab持續(xù)集成打包平臺搭建

注意,這里iOS7.1以后限定必須要要用https,所以需要對jenkins設(shè)置下https,參考下面”后記” 中的Jenkins Https設(shè)置

Last Show

構(gòu)建成功后最終的結(jié)果如下如所示:

 Jenkins Gitlab持續(xù)集成打包平臺搭建

后記

簽名和證書問題(iOS)

  • Set up code signing for iOS projects

  • 安裝JENKINS到發(fā)布IPA中的那些坑

Jenkins Https Support

查詢Jenkins Https相關(guān)命令:
Java -jar jenkins.war –help | grep -i https

說明:下面以Mac為例.

KeyStore方式

  • 生成:

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass 密碼 -dname "cn=WEB" 11
  • 使用:

java -jar jenkins.war --httpPort=-1 --httpsPort=8080 --httpsKeyStore=/目錄/keystore.jks --httpsKeyStorePassword=密碼11
  • 注意: 第一次使用時需要將”WEB”證書導(dǎo)入,導(dǎo)入步驟為:Chrome導(dǎo)出證書 -> 安裝證書 -> 設(shè)置證書”全部允許”, 圖解步驟可參考下面實用參考中的第5篇文章.

Certificate方式

  • 生成:

1. openssl genrsa -out server.key 10242. openssl req -new -key server.key -out server.csr3. openssl x509 -req -in server.csr -signkey server.key -out server.crt123123
  • 使用:

java -jar jenkins.war --httpsPort=8088 --httpsCertificate=/path/server.crt --httpsPrivateKey=/path/server.key 11
  • 注意:①同上 ②iOS手機需要導(dǎo)入cer證書

實用參考

  • Starting and Accessing Jenkins 官網(wǎng)說明

  • Jenkins: Switch to SSL/ HTTPS mode 支持HTTPS的兩種方式

  • Installing and Configuring Jenkins KeyStore方式

  • Generating a self-signed SSL certificate using the Java keytool command (2004193) KeyStore方式

  • Setup Self-Signed Certificates & Trusting them on OS X Certificate方式

  • 免費openssl生成ssl證書 Certificate方式

Refs

  • Using Jenkins

  • Building a software project

  • Auto build and deploy iOS apps using Jenkins

  • Continuous Integration for iOS with Jenkins

  • GitLab Documentation

  • Setup Jenkins + TestFlight for iOS apps

  • Installing Jenkins on OS X Yosemite

  • 基于 Jenkins 快速搭建持續(xù)集成環(huán)境

  • Jenkins入門

  • jenkins中集成OTA發(fā)布

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


新聞標(biāo)題:JenkinsGitlab持續(xù)集成打包平臺搭建-創(chuàng)新互聯(lián)
新聞來源:http://weahome.cn/article/dhopsh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部