{eval=Array;=+count(Array);}

成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

問(wèn)答專欄Q & A COLUMN

持續(xù)化集成-Jenkins如何在Linux機(jī)器上部署?

incredibleincredible 回答0 收藏1
收藏問(wèn)題

2條回答

Ku_Andrew

Ku_Andrew

回答于2022-06-28 11:09

在互聯(lián)網(wǎng)企業(yè)中,多數(shù)項(xiàng)目可能都是按照“兩周一迭代”的節(jié)奏去開(kāi)發(fā)的,甚至不少項(xiàng)目都是日發(fā)布。發(fā)布項(xiàng)目看上去很簡(jiǎn)單,但項(xiàng)目一多、各種線上線下環(huán)境的配置還是很瑣屑的,對(duì)于這類(lèi)重復(fù)性工作是否可以自動(dòng)化呢?這里就是我們要了解的Jenkins了。

Jenkins是什么?

Jenkins是當(dāng)下被廣泛使用的持續(xù)構(gòu)建的可視化Web工具,它是用Java語(yǔ)言開(kāi)發(fā)的,通過(guò)Jenkins可以將各類(lèi)項(xiàng)目的編譯、打包、分發(fā)、部署都變成自動(dòng)化或半自動(dòng)化操作。當(dāng)下主流的編程語(yǔ)言它都能很好的支持,而且和Git、SVN、GitHub等無(wú)縫集成,十分方便。

持續(xù)集成的流程

Linux上安裝Jenkins的步聚

Jenkins的安裝方式很多種,推薦用yum方式來(lái)安裝,以CentOS為例,步聚如下:

1、確保服務(wù)器上安裝了JDK

2、下載安裝Jenkins的鏡像源

# wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo

# rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

3、yum方式安裝Jenkins

# yum clean all

# yum makecache

# yum install jenkins

4、啟用Jenkins

# systemctl enable jenkins

# systemctl start jenkins

通過(guò)以上方式安裝成功后,Web管理面板默認(rèn)端口是8080,訪問(wèn)后按頁(yè)面提示一步步完成初始化操作即可。

以上就是我的觀點(diǎn),對(duì)于這個(gè)問(wèn)題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流 ~ 我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識(shí)!

評(píng)論0 贊同0
  •  加載中...
TalkingData

TalkingData

回答于2022-06-28 11:09

用 jenkins 有什么好處

  1. 通過(guò)規(guī)范化來(lái)完成,簡(jiǎn)單,繁瑣,浪費(fèi)時(shí)間的重復(fù)工作
  2. 規(guī)范化工作,以免出現(xiàn)低級(jí)錯(cuò)誤
  3. 實(shí)現(xiàn)隨時(shí)隨地任何人一鍵構(gòu)建
  4. ......

安裝 jenkins

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

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

使用 pgk 安裝包安裝

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

具體步驟如下圖所示:













此種方式不推薦。

使用 war 安裝

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

java -jar jenkins.war --httpPort=8080

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

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

此種方式也不推薦。

使用 Homebrew 安裝

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

xcode-select --install

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

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

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

完成 Homebrew 安裝。

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

brew services list

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

brew install jenkins

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

同時(shí),卸載 jenkins 的方式為:

brew uninstall jenkins

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

brew services start jenkins

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

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

另,常用命令還有:

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

brew services restart jenkins

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

brew services stop jenkins

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

此種方式強(qiáng)烈推薦。

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

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

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

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

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

配置 jenkins

創(chuàng)建用戶

完成 jenkins 安裝以后,在瀏覽器種打開(kāi) localhost ,會(huì)進(jìn)入配置 jenkins 頁(yè)面。



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



建議選擇 Install suggested plugins。



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



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

安裝插件

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

安裝完成插件后,就可以新建項(xiàng)目了!

其他常用插件有:

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

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

Post build task 該插件允許用戶依據(jù)構(gòu)建日志的輸出執(zhí)行一個(gè)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 該插件能上傳項(xiàng)目構(gòu)件和整個(gè)目錄到一個(gè)FTP服務(wù)器。

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

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

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

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

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

新建項(xiàng)目

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





源碼管理中 選擇 Git ,填寫(xiě)倉(cāng)庫(kù)地址



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

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

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

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



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

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

完成此步驟后,剩余的工作,皆可通過(guò) Execute shell 腳本來(lái)執(zhí)行。不同類(lèi)型項(xiàng)目執(zhí)行腳本不同。

腳本構(gòu)建

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

第一步 歸檔

archive.sh

`#! bin/bash
export LCALL=zhCN.GB2312; export LANG=zh_CN.GB2312
gitMessage=git log --pretty=format:"%s";
stringTag=${gitMessage%%】}; #%%[ 表示從右邊開(kāi)始,刪除最后(最左邊)一個(gè) [ 號(hào)及右邊的字符
debug="【Debug"; preRelase="【PreRelase"; relase="【Relase";
if [[ $stringTag != $debug && $stringTag != $preRelase && $stringTag != $relase ]] then exit 1 else echo "觸發(fā)非參數(shù)化構(gòu)建 暗號(hào):$stringTag】" fi
echo ">>>>>>>>>>>>>>>>>>>開(kāi)始構(gòu)建項(xiàng)目,當(dāng)前選擇構(gòu)建類(lèi)型:" + $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)建完成"

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

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

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

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

第二步 簽名

signature.sh

echo "開(kāi)始簽名"
xcodebuild -exportArchive -archivePath $WORKSPACE/build/SellerPlatform.xcarchive -exportPath $WORKSPACE/build -exportOptionsPlist $WORKSPACE/build/ExportOptions.plist -allowProvisioningUpdates
echo "ipa文件已生成"
echo "開(kāi)始上傳fir"

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

第三步 上傳

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

gem install fir-cli

上傳打 fir 命令

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

upload.sh

echo ">>>>>>>>>>>>>>>>>>>開(kāi)始上傳到 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ù)集成的流程。



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

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

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

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



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



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

fir-plugin 安裝與使用

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

安裝

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



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



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

使用

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





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



說(shuō)明成功了。

其他配置

內(nèi)網(wǎng)訪問(wèn)

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

ifconfig en0

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

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

評(píng)論0 贊同0
  •  加載中...

最新活動(dòng)

您已邀請(qǐng)0人回答 查看邀請(qǐng)

我的邀請(qǐng)列表

  • 擅長(zhǎng)該話題
  • 回答過(guò)該話題
  • 我關(guān)注的人
向幫助了您的網(wǎng)友說(shuō)句感謝的話吧!
付費(fèi)偷看金額在0.1-10元之間
<