jenkens其實是代碼上傳工具

來源:互聯網
上載者:User

標籤:源碼   plugins   環境   ase   簡單   配置   ash   異常   相關   

Jenkins 持續整合使用教程用 jenkins 有什麼好處
  1. 通過正常化來完成,簡單,繁瑣,浪費時間的重複工作
  2. 正常化工作,以免出現低級錯誤
  3. 實現隨時隨地任何人一鍵構建
  4. ......
安裝 jenkins

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

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

使用 pgk 安裝包安裝

在 官網 下載 pgk 安裝包,使用安裝器安裝,按照流程安裝即可。此安裝方式會在 Mac 系統裡建立一個名為 jenkins 使用者,jenkins 服務就部署在這個使用者下。

具體步驟如所示:

此種方式不推薦。

使用 war 安裝

直接去官網下載 war 檔案,並 cd 到 jenkins.war 所在目錄,執行:

java -jar jenkins.war --httpPort=8080

war 包內建 jetty 伺服器,以上命令會自動啟伺服器,並完成部署。

此種方式安裝,會在目前使用者的根路徑下建立 .jenkins 隱藏檔案,併產生多餘的設定檔,需手動管理,且不方便卸載。

此種方式也不推薦。

使用 Homebrew 安裝

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

xcode-select --install

Homebrew 依賴 Command Line Tools for Xcode,Xcode 命令列工具包含在 Xcode 中,如果 mac 裝置已經安裝 Xcode,請忽略此步。

安裝完上面的編譯依賴之後,通過下面的程式碼完成 Homebrew 的安裝:

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

完成 Homebrew 安裝。

可通過以下命令查看當前 Homebrew 管理的服務:

brew services list

使用 Hombrew 安裝 jenkins,執行以下命令:

brew install jenkins

此步,Homebrew 會下載並安裝自動完成所有依賴,包括 java。並會建立 ‘jenkins’ 命令。

同時,卸載 jenkins 的方式為:

brew uninstall jenkins

啟動 jenkins 服務的方式為:

brew services start jenkins

使用此種方式啟用 jenkins 服務支援後台運行,可以關閉終端工具。

也可以使用 jenkins 命令來啟用 jenkins 服務。但此種方式不支援後台運行,關閉命令列工具,服務自動關閉。

另,常用命令還有:

重啟 jenkins 服務的方式為:

brew services restart jenkins

停止 jenkins 服務的方式為:

brew services stop jenkins

通過此種方式安裝,不會在系統中產生垃圾檔案和多餘的設定檔,所有的檔案都是用 Homebrew 來管理,並且方便卸載。

此種方式強烈推薦。

如安以上方式安裝後,localhost 打不開,可能的情況一般有:java jdk 未正確安裝或配置,8080連接埠被佔用,安裝路徑許可權不夠等等的問題,遇到這樣的問題最好的辦法是:卸載重裝。不同的安裝方式,卸載方式也會不同。具體可參看這個教程。

另,也有如下方式操作 Jenkins 服務

http://localhost:8080/exit //停止服務

http://localhost:8080/restart //重啟服務

http://localhost:8080/reload // 重新載入服務

配置 jenkins建立使用者

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

按照提示,找到/Users/Shared/Jenkins/Home/ 這個目錄下,開啟 initialAdminPassword 檔案,複製出密碼並填入,點擊繼續,進入安裝外掛程式頁面。

建議選擇 Install suggested plugins。

等待外掛程式安裝完成後,jenkins 會重啟,等待重啟完成後,會進入建立使用者頁面。

填寫使用者資訊後,儲存即可。請務必記住使用者名稱和密碼資訊,否則重設使用者資訊非常麻煩。

安裝外掛程式

登入 http://localhost:8080 ,選擇“系統管理”——“管理外掛程式”,在“可選外掛程式”中選中“GitLab Plugin”、“Gitlab Hook Plugin”、“Xcode integration"等常用外掛程式,然後安裝。

安裝完成外掛程式後,就可以建立項目了!

其他常用外掛程式有:

Email Extension Plugin
該外掛程式用於替換 Jenkins 內建的郵件發送,更加的強大。

Git Plugin
該外掛程式允許使用GIT作為一個構建SCM(原始碼控制管理系統)。

Post build task
該外掛程式允許使用者依據構建日誌的輸出執行一個shell/批處理任務。

Ruby Plugin
該外掛程式允許使用者在構建指令碼中使用 Ruby。

Python Plugin
添加執行 Python 指令碼作為Hudson的構建步驟。

Gradle Plugin
該外掛程式允許Hudson調用Gradle構建指令碼作為主體構建的步驟。

FTP-Publisher Plugin
該外掛程式能上傳項目構件和整個目錄到一個FTP伺服器。

Extended Choice Parameter plugin
該外掛程式可以擴充參數化構建過程

Extended Choice Parameter Plug-In
該外掛程式可以擴充參數化構建過程

Dynamic Extended Choice Parameter Plug-In
該外掛程式可以擴充參數化構建過程

git parameter Plug-in
該外掛程式可以擴充參數化構建過程

fir-plugin
該外掛程式是 fir.im 分發平台提供的 jenkins 外掛程式,用於上傳安裝包到 fir.im 平台。此外掛程式安裝方式與上面的外掛程式安裝方式不同,具體安裝方式見文末。

建立項目

點擊建立,在建立項目頁面輸入項目名稱,選擇“構建一個自由式饒舌的軟體項目”,然後進入配置頁面

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

如出現紅色警告,說明 Jenkins 訪問不了 Git 倉庫,一般是因為沒有許可權導致。點擊 Credentials 項的 Add ,在開啟的 Jenkins Credentails Provider:Jenkins 頁面,在 Username 和 Password 輸入 Git 倉庫的使用者名稱和密碼,完成添加。不必擔心使用者資訊外泄,Jenkins 服務和所有配置都儲存在本地。

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

在 Branches to build 中設定 Branch Specifier 要構建的分支,預設為 master。

構建觸發器中設定構建自動化的觸發器。

其中 Build periodically,為定時 build,在議程表裡設定 build 時間,如設定 00 20 * 表示每天 20 點執行定時 build。

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

完成此步驟後,剩餘的工作,皆可通過 Execute shell 指令碼來執行。不同類型項目執行指令碼不同。

指令碼構建

以構建 iOS 的 SellerPlatform 迷橙商家端項目上傳 fir.im 分發平台為例完成建立。

第一步 歸檔

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 "觸發非參數化構建 暗號:$stringTag】"
fi

echo ">>>>>>>>>>>>>>>>>>>開始構建項目,當前選擇構建類型:" + $BUILDTYPE
echo ">>>>>>>>>>>>>>>>>>>當前 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 ">>>>>>>>>>>>>>>>>>>構建完成"

以上指令碼實現的功能是:當在 git commit messge 裡包含指定的標記號,即可完成對應標記號的構建。把控制權延伸到 git commit 操作裡。

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

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

另,Jenkins 會為每個工程項目建立一個本地目錄空間,並提供了 \$WORKSPACE 環境變數來直接存取。

第二步 簽名

signature.sh

echo "開始簽名"

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

echo "ipa檔案已產生"

echo "開始上傳fir"

以上指令碼實現的功能是:根據第一步歸檔出來的projectName.xcarchive 完成簽名打包。

第三步 上傳

首先,開啟終端,安裝 fir-clifir 的命令列工具,用於通過命令列上傳安裝包。
需要先裝好 ruby 再執行

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 ">>>>>>>>>>>>>>>>>>>上傳成功啦"

至此,就完成了持續整合的流程。

完成後建構,還可以通過 Email Extension Plugin 外掛程式,郵件通知到相關人員。還可以定製郵件內容。在郵件內容裡,還可以放置二維碼,方便下載安裝。

更進一步,參數化構建

參數化構建,顧名思義,就是可以指定構建參數,完成高度可定製化構建。

首先,需要安裝 git parameter Plug-in 外掛程式,然後項目配置頁面,在 General 中,選中‘參數化構建過程’,然後選擇 git parameter。:

設定 name 為 git_branch,即為變數名,然後 Parameter type ,就是 選擇 branch/tag/branch or tag 三種類型,在源碼管理中 Branches to build 中設定 Branch Specifier 為 \$git_branch 。即可完成自訂分支構建。

同樣,可以設定構建的版本類型。在構建的時候,進行選擇。在此不再贅述。

fir-plugin 安裝與使用

在上面的例子裡,使用的是 fir.im 提供的命令列工具完成後建構的上傳,也可以通過 fir-plugin 外掛程式來完成上傳。

安裝

首先去下載外掛程式
。然後,進入"系統管理"->"管理外掛程式"->"進階"->"上傳外掛程式"

選擇已下載好的 fir-plugin.hpi 外掛程式,點擊上傳。

安裝完成後重啟服務。

使用

構建後操作 選擇"Upload to fir.im",並添加 api token 並校正

立即構建項目,成功之後,在工程裡的 Console Output 中有如下日誌

說明成功了。

其他配置內網訪問

首先,拿到 jenkins 伺服器所在裝置上的內網 IP,執行如下命令可獲得

ifconfig en0

進入"系統管理"->"系統設定" 找到 Jenkins Location 在 Jenkins URL 中設定地址,並加上連接埠號碼,格式如:172.0.0.1:8080/,然後儲存。重啟服務,內網其他裝置輸入地址即可訪問。

當其他裝置不能訪問時,一般原因有:jenkins 伺服器沒啟動,裝置處於睡眠模式,裝置內網 IP 被重新分配。

覺得不錯的話,歡迎關注我的公眾號哦!

jenkens其實是代碼上傳工具

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.