摘要:本文通過鉤子實現了,本地代碼,會自動響應并拉取碼云上最新的代碼值服務器上,使得本地提交代碼時,線上能夠同步的更新代碼,省去了手動更新服務器上代碼的重復工作。思考下我的需求本地代碼到碼云,自動拉取最新的代碼。
* 寫在前面的一段話:
? ? ? ? ? 根據目前的工作需要,以及為了接下來新產品前后端間更高效的協同,我決定爬一下Jenkins的坑。本文通過git鉤子+Jenkins實現了,本地git push代碼,Jenkins會自動響應并拉取碼云上最新的代碼值服務器上,使得本地提交代碼時,線上能夠同步的更新代碼,省去了手動更新服務器上代碼的重復工作。
服務器本文用的是 CentOS 7.2 64位)
Jenkins
碼云(也可以是github、gitlab等)
Jenkins 是什么?能做什么?Jenkins是一個開源軟件項目,旨在提供一個開放易用的軟件平臺,使軟件的持續集成變成可能。Jenkins是基于Java開發的一種持續集成工具,用于監控持續重復的工作,功能包括:一、安裝JDK
1、持續的軟件版本發布/測試項目。
2、監控外部調用執行的工作。
1、在安裝Jenkins之前,需要先安裝JDK及配置系統環境變量,因為Jenkins是基于JAVA的。
下載JDK8安裝包并上傳至服務器,在安裝之前建議先檢查下是否安裝過JDK,因為Jenkins最新的2.x版本是基于JDK8的,通過下面命令可以查詢
# rpm -qa | grep java
如果有,會出現已安裝的JDK列表。執行下面命令依次卸載即可
# rpm -e --nodeps <列表里各項>
2、安裝JDK8
# rpm -ivh <下載的安裝包名稱>
3、檢查JAVA版本
# java -version
4、配置環境變量
打開配置文件
# vim /etc/profile
按i鍵可以進入編輯模式,按pagedown翻到最后,添加上如下配置
export JAVA_HOME=export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
按Esc退出編輯模式,并輸入下面命令保存并強制退出
:wq!
重新應用修改后的配置文件
# source /etc/profile
PS:可以打印出$PATH變量,查看是否配置成功
# echo $PATH
如果輸出了相對應的路徑則說明配置成功,可以進行下一步了!
二、安裝Jenkins1、如同安裝JDK,先下載Jenkins的.war安裝包并上傳至服務器(也可以將Jenkins存儲庫添加到yum repos,并從這里安裝Jenkins.詳情可見 Jenkins文檔 ),進入Jenkins包所在文件夾執行下面命令啟動Jenkins
# java -jar jenkins.war --httpPort=8090
啟動后用瀏覽器打開http://
OK,至此,基礎準備工作已經完成,我們在服務器上安裝了Jenkins并啟動,然后進行了初始化配置。接下來我們就需要建立了一個新任務,開始配置我們需要的功能了。
思考下我的需求:本地push代碼到碼云,Jenkins自動拉取最新的代碼。所以需要將本地、服務器與碼云三者間關聯起來
三、實現git鉤子功能1、在Jenkins插件管理里找到已安裝插件,如圖
檢查一下三個插件是否安裝,如果沒有,請安裝
Git plugin
Publish Over SSH
Generic Webhook Trigger Plugin
2、安裝好后重啟Jenkins,接下來便是新建一個任務:
PS: 如果你的項目在拉取代碼后需要其它操作,諸如:安裝依賴、打包等,可在構建、構建后操作里配置,本文不再演示
3、配置碼云的webhooks
添加 url格式為 http://
其中 userid 和 api token 在jenkins的系統管理-管理用戶-admin-設置里
密碼就是jenkins登陸的密碼,填寫完成保存,點擊測試如圖
出現圖示結果,并且Jenkins里顯示構建成功
那么說明git鉤子已經生效。你也可以本地push代碼來測試一下!
來看看jenkins拉取的代碼吧,在jenkins workspace里可以找到
四、最終目的那么問題來了,我以為這樣就Everything has been done,打開后居然是這個樣子
想想我最初的目的,自動化的流程是實現了,但是實時同步線上預覽掛掉了,這可真的是不行不能夠不可以的,我決定出去看看外面的世界找找靈感(答案),果然被我找到了
方法一:在jenkins命令行腳本輸入
System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")
方法二:在啟動時指定參數
# java -Dhudson.model.DirectoryBrowserSupport.CSP= -jar jenkins.war --httpPorrt=8090
運行,如果還是報錯 記得清下瀏覽器緩存!
至此,done!
五、總結下Jenkins 功能十分強大,在現在前端項目工程化的背景下,可以替開發和測試人員做很多重復性的工作,本次基于Jenkins做的只是一個銷應用場景下的demo,在公司新產品開發時也可以基于此進行更多功能的完善!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/96761.html
摘要:本文通過鉤子實現了,本地代碼,會自動響應并拉取碼云上最新的代碼值服務器上,使得本地提交代碼時,線上能夠同步的更新代碼,省去了手動更新服務器上代碼的重復工作。思考下我的需求本地代碼到碼云,自動拉取最新的代碼。 * 寫在前面的一段話:? ? ? ? ? 根據目前的工作需要,以及為了接下來新產品前后端間更高效的協同,我決定爬一下Jenkins的坑。本文通過git鉤子+Jenkins實現了,...
摘要:對測試的影響讓單元測試運行的更順暢單元測試驅動開發是一個很好的應用程序開發方式,單元測試往往也是和代碼一起被提交到代碼倉庫中。但是很多單元測試通常依賴于很多其他服務,而這些服務的標準化配置往往是一個難點,如數據庫的搭建防火墻的配置等。 傳統的軟件開發、測試、運維需要三個團隊在三個不同的環境中進行,而三個環境的不同引發了很多的問題。如:工作內容的重復;開發環境中可運行的程序在測試和運維環...
摘要:支持應用持續部署,下面我們來分別說明一下與對接如何把源碼和鏡像格式應用部署到云幫。構建自己的持續部署流程在云幫的應用市場中有豐富的應用可以安裝使用,您可以使用這些應用構建自己的工作流。 對接Jenkins基于Git倉庫與鏡像構建的服務進行自動CI、CD實踐 概述 如果您現在已經有了自己的CI工作流程,并且想在云幫中持續部署您的應用,那么本文將引導您將自己的應用部署到云幫并設置持續部署。...
摘要:來這里看看的工程師如何進行持續集成與持續部署。主要介紹了豆瓣移動持續集成和測試相關實踐,用工具化自動化社會化測試來解決遇到的問題,將打包發布環節自動化。這期的持續集成實踐分享就到這里。 我們常看到許多團隊和開發者分享他們的持續集成實踐經驗,本期 fir.im Weekly 收集了 iOS,Android,PHP ,NodeJS 等項目搭建持續集成的實踐,以及一些國內外公司的內部持續集成...
閱讀 1820·2023-04-26 01:55
閱讀 1083·2021-09-30 09:47
閱讀 1679·2019-08-30 15:54
閱讀 744·2019-08-30 15:53
閱讀 697·2019-08-30 15:52
閱讀 1140·2019-08-30 15:44
閱讀 2414·2019-08-30 14:06
閱讀 1062·2019-08-29 16:39