使用gitlab, jenkins搭建CI(持續集成)系統(3) -- 根據不一樣觸發條件執行不一樣的構建任務

前面在jenkins中安裝的gitlab hook支持不一樣的參數,具體能夠參考gitlab hook文檔https://github.com/jenkinsci/gitlab-hook-plugin#parameterized-projects。其中BRANCH表示觸發構建的分支名,咱們能夠在構建腳本中使用這個參數,進行不一樣的構建。要使用這個參數,須要在jenkins中進行配置git

 

接下來就是要編寫配置腳本了github

找到」構建「, 點擊「增長構建步驟", 選擇「Execute shell", 而後在裏面寫構建腳本spring

 

#應用名稱shell

export appname="example-springbootmvc"springboot

 

#master - dev環境構建配置,服務器

#登陸到服務器時使用的用戶名mvc

export master_user="root"app

#應用部署的目錄  構建完成後會/apps下(須要預先建立好這個目錄)會有example-springbootmvc目錄,這個就是你的應用部署的位置。
export master_appsdir="/apps"gitlab

#服務器去的IP地址列表 格式 ip1,ip2,ip3 ip地址直接用","分割gradle

export master_iplist="192.168.1.41"

 

#一下分別是 test-test環境構建, release-prepublish環境和publish-realpublish環境環境的構建,每一項參數的的含義和master同樣。

export appname="example-springbootmvc"

export master_user="root"
export master_appsdir="/apps"
export master_iplist="192.168.1.41"

export test_user="root"
export test_appsdir="/apps"
export test_iplist="192.168.1.42"

export release_user="root"
export release_appsdir="/apps"
export release_iplist="192.168.1.43,192.168.1.44"

 

/root/jenkins/scripts/distanddeploy.sh

 

#執行構建和部署腳本,這個腳本將使用以上配置的環境變量, 

#distanddeploy.sh和它調用的一系列腳本代碼能夠在這裏下載https://github.com/brandonlyg/ci-scripts,

#把這些腳本方192.168.1.36的/root/jenkins/scripts中。
/root/jenkins/scripts/distanddeploy.sh

 

下面以master-dev配置爲例解釋一下,配置致使腳本的行爲

當把修改master分支代碼,push到gitlab上以後,將會觸發master構建。腳本將會執行一下步驟的動做:

1. 將master分支pull到本地。

2. 使用gradle build命令構建應用

3. example-springbootmvc下建立dist目錄,在這個目錄下建立分發包。

4. 將用multiconfig/master中的配置文件覆蓋分發包中config目錄下的配置文件

5. 將分發包打包成zip

6. 將zip包傳到192.168.1.41, 並部署在/apps下

7. 調用example-springbootmvc/bin/start.sh 啓動服務。

 

test和master分支的構建部署過程是同樣的。

 

和master,test相比,release構建部署過程有兩點不一樣:

1. 觸發方式不一樣,須要在Build with Parameters中觸發

 

2. 代碼處理方式不一樣,腳本會自動將test分支的代碼合併到release上再構建release分支

 

驗證方法:

dev環境

http://192.168.1.41:9300/rest/get

test環境

http://192.168.1.42:9301/rest/get

prepublish環境

http://192.168.1.43:9302/rest/get

 

返回相似於

{"retCode":0,"errMsg":null,"data":{"userId":"11111","timeStamp":1521293702385,"info":"this is 9 env:prepublish"}}
相關文章
相關標籤/搜索