Jenkins持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程


用 jenkins 有什么好處
  1. 通過規(guī)范化來完成,簡單,繁瑣,浪費時間的重復(fù)工作
  2. 規(guī)范化工作,以免出現(xiàn)低級錯誤
  3. 實現(xiàn)隨時隨地任何人一鍵構(gòu)建
  4. ......
安裝 jenkins

以 Mac 設(shè)備為例(Windows 步驟類似),幫你一步一步搭建好 jenkins。jenkins 屬于 java 項目 依賴于 java,需要先安裝 java jdk,具體安裝方式請自行百度。

十年的盤山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整盤山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“盤山網(wǎng)站設(shè)計”,“盤山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。

安裝 jenkins 有常用的三種方式。

使用 pgk 安裝包安裝

在 官網(wǎng) 下載 pgk 安裝包,使用安裝器安裝,按照流程安裝即可。此安裝方式會在 Mac 系統(tǒng)里創(chuàng)建一個名為 jenkins 用戶,jenkins 服務(wù)就部署在這個用戶下。

具體步驟如下圖所示:

Jenkins 持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程

此種方式不推薦。

使用 war 安裝

直接去官網(wǎng)下載 war 文件,并 cd 到 jenkins.war 所在目錄,執(zhí)行:

java -jar jenkins.war --httpPort=8080

war 包自帶 jetty 服務(wù)器,以上命令會自動啟服務(wù)器,并完成部署。

此種方式安裝,會在當(dāng)前用戶的根路徑下創(chuàng)建 .jenkins 隱藏文件,并產(chǎn)生多余的配置文件,需手動管理,且不方便卸載。

此種方式也不推薦。

使用 Homebrew 安裝

Homebrew 作為 macOS 下的包管理器使用起來異常的簡單快捷方便。
安裝 Homebrew 之前, 首先安裝 Command Line Tools for Xcode,命令如下:

xcode-select --install

Homebrew 依賴 Command Line Tools for Xcode,Xcode 命令行工具包含在 Xcode 中,如果 mac 設(shè)備已經(jīng)安裝 Xcode,請忽略此步。

安裝完上面的編譯依賴之后,通過下面的代碼完成 Homebrew 的安裝:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

完成 Homebrew 安裝。

可通過以下命令查看當(dāng)前 Homebrew 管理的服務(wù):

brew services list

使用 Hombrew 安裝 jenkins,執(zhí)行以下命令:

brew install jenkins

此步,Homebrew 會下載并安裝自動完成所有依賴,包括 java。并會創(chuàng)建 ‘jenkins’ 命令。

同時,卸載 jenkins 的方式為:

brew uninstall jenkins

啟動 jenkins 服務(wù)的方式為:

brew services start jenkins

使用此種方式啟用 jenkins 服務(wù)支持后臺運行,可以關(guān)閉終端工具。

也可以使用 jenkins 命令來啟用 jenkins 服務(wù)。但此種方式不支持后臺運行,關(guān)閉命令行工具,服務(wù)自動關(guān)閉。

另,常用命令還有:

重啟 jenkins 服務(wù)的方式為:

brew services restart jenkins

停止 jenkins 服務(wù)的方式為:

brew services stop jenkins

通過此種方式安裝,不會在系統(tǒng)中產(chǎn)生垃圾文件和多余的配置文件,所有的文件都是用 Homebrew 來管理,并且方便卸載。

此種方式強烈推薦。

如安以上方式安裝后,localhost 打不開,可能的情況一般有:java jdk 未正確安裝或配置,8080端口被占用,安裝路徑權(quán)限不夠等等的問題,遇到這樣的問題最好的辦法是:卸載重裝。不同的安裝方式,卸載方式也會不同。具體可參看這個教程。

另,也有如下方式操作 Jenkins 服務(wù)

http://localhost:8080/exit //停止服務(wù)

http://localhost:8080/restart //重啟服務(wù)

http://localhost:8080/reload // 重新載入服務(wù)

配置 jenkins
創(chuàng)建用戶

完成 jenkins 安裝以后,在瀏覽器種打開 localhost ,會進入配置 jenkins 頁面。

Jenkins 持續(xù)集成使用教程

按照提示,找到/Users/Shared/Jenkins/Home/ 這個目錄下,打開 initialAdminPassword 文件,復(fù)制出密碼并填入,點擊繼續(xù),進入安裝插件頁面。

Jenkins 持續(xù)集成使用教程

建議選擇 Install suggested plugins。

Jenkins 持續(xù)集成使用教程

等待插件安裝完成后,jenkins 會重啟,等待重啟完成后,會進入創(chuàng)建用戶頁面。

Jenkins 持續(xù)集成使用教程

填寫用戶信息后,保存即可。請務(wù)必記住用戶名和密碼信息,否則重置用戶信息非常麻煩。

安裝插件

登錄 http://localhost:8080 ,選擇“系統(tǒng)管理”——“管理插件”,在“可選插件”中選中“GitLab Plugin”、“Gitlab Hook Plugin”、“Xcode integration"等常用插件,然后安裝。

安裝完成插件后,就可以新建項目了!

其他常用插件有:

Email Extension Plugin
該插件用于替換 Jenkins 自帶的郵件發(fā)送,更加的強大。

Git Plugin
該插件允許使用GIT作為一個構(gòu)建SCM(源代碼控制管理系統(tǒng))。

Post build task
該插件允許用戶依據(jù)構(gòu)建日志的輸出執(zhí)行一個shell/批處理任務(wù)。

Ruby Plugin
該插件允許用戶在構(gòu)建腳本中使用 Ruby。

Python Plugin
添加執(zhí)行 Python 腳本作為Hudson的構(gòu)建步驟。

Gradle Plugin
該插件允許Hudson調(diào)用Gradle構(gòu)建腳本作為主體構(gòu)建的步驟。

FTP-Publisher Plugin
該插件能上傳項目構(gòu)件和整個目錄到一個FTP服務(wù)器。

Extended Choice Parameter plugin
該插件可以擴展參數(shù)化構(gòu)建過程

Extended Choice Parameter Plug-In
該插件可以擴展參數(shù)化構(gòu)建過程

Dynamic Extended Choice Parameter Plug-In
該插件可以擴展參數(shù)化構(gòu)建過程

git parameter Plug-in
該插件可以擴展參數(shù)化構(gòu)建過程

fir-plugin
該插件是 fir.im 分發(fā)平臺提供的 jenkins 插件,用于上傳安裝包到 fir.im 平臺。此插件安裝方式與上面的插件安裝方式不同,具體安裝方式見文末。

新建項目

點擊新建,在新建項目頁面輸入項目名稱,選擇“構(gòu)建一個自由風(fēng)格的軟件項目”,然后進入配置頁面

Jenkins 持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程

源碼管理中 選擇 Git ,填寫倉庫地址

Jenkins 持續(xù)集成使用教程

如出現(xiàn)紅色警告,說明 Jenkins 訪問不了 Git 倉庫,一般是因為沒有權(quán)限導(dǎo)致。點擊 Credentials 項的 Add ,在打開的 Jenkins Credentails Provider:Jenkins 頁面,在 Username 和 Password 輸入 Git 倉庫的用戶名和密碼,完成添加。不必擔(dān)心用戶信息外泄,Jenkins 服務(wù)和所有配置都保存在本地。

還可以通過配置 Git SSH 的方式賦予 Jenkins 訪問 Git 倉庫的權(quán)限,按此方法較為麻煩,具體步驟略。

在 Branches to build 中設(shè)置 Branch Specifier 要構(gòu)建的分支,默認為 master。

構(gòu)建觸發(fā)器中設(shè)置構(gòu)建自動化的觸發(fā)器。

Jenkins 持續(xù)集成使用教程

其中 Build periodically,為定時 build,在日程表里設(shè)置 build 時間,如設(shè)置 00 20 * 表示每天 20 點執(zhí)行定時 build。

Poll SCM (poll source code management) 輪詢源碼管理,表示在指定的時間點去輪詢 Git 倉庫,看是否有新的 commit,如有,則觸發(fā)構(gòu)建。如設(shè)置 0/5 表示每5分鐘輪詢一次。

完成此步驟后,剩余的工作,皆可通過 Execute shell腳本來執(zhí)行。不同類型項目執(zhí)行腳本不同。

腳本構(gòu)建

以構(gòu)建 iOS 的 SellerPlatform 迷橙商家端項目上傳 fir.im 分發(fā)平臺為例完成創(chuàng)建。

第一步 歸檔

archive.sh

`#! bin/bash

export LC_ALL=zh_CN.GB2312;
export LANG=zh_CN.GB2312

gitMessage=git log --pretty=format:"%s";

stringTag=${gitMessage%%】}; #%%[ 表示從右邊開始,刪除最后(最左邊)一個 [ 號及右邊的字符

debug="【Debug";
preRelase="【PreRelase";
relase="【Relase";

if [[ $stringTag != $debug && $stringTag != $preRelase && $stringTag != $relase ]]
then
exit 1
else
echo "觸發(fā)非參數(shù)化構(gòu)建 暗號:$stringTag】"
fi

echo ">>>>>>>>>>>>>>>>>>>開始構(gòu)建項目,當(dāng)前選擇構(gòu)建類型:" + $BUILDTYPE
echo ">>>>>>>>>>>>>>>>>>>當(dāng)前 workspace " +$WORKSPACE

if [ $BUILDTYPE == "Release"]; then
xcodebuild archive -workspace $WORKSPACE/SellerPlatform/SellerPlatform.xcworkspace -archivePath $WORKSPACE/build/SellerPlatform.xcarchive -sdk iphoneos -scheme SellerPlatform -configuration Release

else
xcodebuild archive -workspace $WORKSPACE/SellerPlatform/SellerPlatform.xcworkspace -archivePath $WORKSPACE/build/SellerPlatform.xcarchive -sdk iphoneos -scheme SellerPlatform -configuration Debug

fi

echo ">>>>>>>>>>>>>>>>>>>構(gòu)建完成"

以上腳本實現(xiàn)的功能是:當(dāng)在 git commit messge 里包含指定的標記號,即可完成對應(yīng)標記號的構(gòu)建。把控制權(quán)延伸到 git commit 操作里。

其中 【Debug】 代表打 debug 版本包,【PreRelase】代表打 preRelase 版本包,【Relase】代表打 relase 版本包。

首先,通過執(zhí)行 git log --pretty=format:"%s" 命令,格式化輸出 git commit log,
通過 %%】* 操作,是要拿到最后標記號【Debug】或【PreRelase】或【Relase】,如果拿到對應(yīng)的標記號,則完成對應(yīng)方式的構(gòu)建。

另,Jenkins 會為每個工程項目創(chuàng)建一個本地目錄空間,并提供了 \$WORKSPACE 環(huán)境變量來直接訪問。

第二步 簽名

signature.sh

echo "開始簽名"

xcodebuild -exportArchive -archivePath $WORKSPACE/build/SellerPlatform.xcarchive -exportPath $WORKSPACE/build -exportOptionsPlist $WORKSPACE/build/ExportOptions.plist -allowProvisioningUpdates

echo "ipa文件已生成"

echo "開始上傳fir"

以上腳本實現(xiàn)的功能是:根據(jù)第一步歸檔出來的projectName.xcarchive 完成簽名打包。

第三步 上傳

首先,打開終端,安裝 fir-clifir 的命令行工具,用于通過命令行上傳安裝包。
需要先裝好 ruby 再執(zhí)行

gem install fir-cli

上傳打 fir 命令

fir publish ${ipa_path} -T fir_token -c "${commit_msg}"

upload.sh

echo ">>>>>>>>>>>>>>>>>>>開始上傳到 fir"
if [$BUILDTYPE == "Debug" ]; then

fir publish $WORKSPACE/build/SellerPlatform.ipa -T efa7a5559110764a5037c52d4599635f --password rose888 -c $CHANGELOG

elif [ $BUILDTYPE == "PreRelease" ]; then

fir publish $WORKSPACE/build/SellerPlatform.ipa -T 4f43ef4e28992358b511a76eb1c27d48 --password rose888 -c $CHANGELOG

else

fir publish $WORKSPACE/build/SellerPlatform.ipa -T 3a9a1a361fe52b8b0d5eb59c7d0bd808 --password rose888 -c $CHANGELOG

fi

echo ">>>>>>>>>>>>>>>>>>>上傳成功啦"

至此,就完成了持續(xù)集成的流程。

Jenkins 持續(xù)集成使用教程

完成后建構(gòu),還可以通過 Email Extension Plugin插件,郵件通知到相關(guān)人員。還可以定制郵件內(nèi)容。在郵件內(nèi)容里,還可以放置二維碼,方便下載安裝。

更進一步,參數(shù)化構(gòu)建

參數(shù)化構(gòu)建,顧名思義,就是可以指定構(gòu)建參數(shù),完成高度可定制化構(gòu)建。

首先,需要安裝 git parameter Plug-in插件,然后項目配置頁面,在 General中,選中‘參數(shù)化構(gòu)建過程’,然后選擇 git parameter。如圖所示:

Jenkins 持續(xù)集成使用教程

設(shè)置 name 為 git_branch,即為變量名,然后 Parameter type ,就是 選擇 branch/tag/branch or tag 三種類型,在源碼管理中 Branches to build 中設(shè)置 Branch Specifier 為 \$git_branch 。即可完成自定義分支構(gòu)建。

Jenkins 持續(xù)集成使用教程

同樣,可以設(shè)置構(gòu)建的版本類型。在構(gòu)建的時候,進行選擇。在此不再贅述。

fir-plugin 安裝與使用

在上面的例子里,使用的是 fir.im 提供的命令行工具完成后建構(gòu)的上傳,也可以通過 fir-plugin 插件來完成上傳。

安裝

首先去下載插件
。然后,進入"系統(tǒng)管理"->"管理插件"->"高級"->"上傳插件"

Jenkins 持續(xù)集成使用教程

選擇已下載好的 fir-plugin.hpi 插件,點擊上傳。

Jenkins 持續(xù)集成使用教程

安裝完成后重啟服務(wù)。

使用

構(gòu)建后操作選擇"Upload to fir.im",并添加 api token 并校驗

Jenkins 持續(xù)集成使用教程

Jenkins 持續(xù)集成使用教程

立即構(gòu)建項目,成功之后,在工程里的 Console Output 中有如下日志

Jenkins 持續(xù)集成使用教程

說明成功了。

其他配置
內(nèi)網(wǎng)訪問

首先,拿到 jenkins 服務(wù)器所在設(shè)備上的內(nèi)網(wǎng) IP,執(zhí)行如下命令可獲得

ifconfig en0

進入"系統(tǒng)管理"->"系統(tǒng)設(shè)置" 找到 Jenkins Location 在 Jenkins URL 中設(shè)置地址,并加上端口號,格式如:172.0.0.1:8080/,然后保存。重啟服務(wù),內(nèi)網(wǎng)其他設(shè)備輸入地址即可訪問。

當(dāng)其他設(shè)備不能訪問時,一般原因有:jenkins 服務(wù)器沒啟動,設(shè)備處于休眠模式,設(shè)備內(nèi)網(wǎng) IP 被重新分配。

覺得不錯的話,歡迎關(guān)注我的公眾號哦!

Jenkins 持續(xù)集成使用教程

本文標題:Jenkins持續(xù)集成使用教程
文章源于:http://muchs.cn/article46/jcpghg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供用戶體驗、網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站排名軟件開發(fā)網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)