jenkins配置svn、gradle、ssh

sl521100發表於2016-03-10

1.先說下實現的效果,從svn拉取程式碼、呼叫gradle編譯構建、將構建包分發到部署伺服器並備份原來的部署包;

2.直接從http://mirrors.jenkins-ci.org/war/latest/jenkins.war 下載最新的war包。

啟動方法: java  -jar jenkins.war 即可,如果要以後臺程式的方式啟動,改成nohup java -jar jenkins.war & 即可;

加 --httpPort指定執行埠;

jdk、gradle這種依賴外掛要先配置好;

image

這裡設定一下JENKINS_HOME環境變數,這樣,所下載的外掛產生的資料都會到指定的目錄裡;不配的話預設是在home目錄;

3.具體配置如圖

image

a、這裡,可以更新需要的外掛,這裡用的jenkins1.652,更新外掛時,svn外掛不要更新了;剛開始更新後,從svn拉程式碼一直出錯;可能是外掛的相容性問題;

b、系統配置裡

image

image

配置好jdk、gradle、shell

 

c、裝下Publish over SSH外掛

image

 

圖1填寫密碼也可不填,圖2填私鑰所在路徑,圖3填私鑰值,圖4填預設遠端目錄

這裡的私鑰可以用   ssh-keygen -t rsa  生成,將生成的公鑰值放到遠端伺服器的authorized_keys 檔案裡,即可免碼登入;

 

d、新建條目,配置如下

image

圖上配置專案名稱、svn地址、svn登入名、密碼,及本地目錄;

 

image

 

圖上1,任務指令碼;

圖2根路徑,

圖3構建指令碼;

圖4構建後的war包路徑;

圖5將war包路徑拷貝到遠端目錄中所排除的路徑部分,即我只需要拷貝一個war包,不需要它的父級目錄;

圖6拷貝到遠端的目錄,注意這個是相對目錄,相對之前配置的ssh遠端目錄;

圖7遠端指令碼檔案,在拷貝完之後執行;這個指令碼主要是將遠端部署目錄的工作包備份到歷史資料夾,再把tmp中新的包覆蓋工作包;

執行指令碼:

#!/bin/bash
#_his='/usr/local/myapp/history/cbb_web'
#_deploy='/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain/deploy'
#_jar='icustoms-cbb-pre-1.0.war'

_his='/usr/local/myapp/history/cbb_robot'
_deploy='/home/weblogic/apps/cbb-robot'
_jar='cbb-sender-sh-pre-robot-1.0.jar'

cp ${_deploy}/${_jar} ${_his}/$(date +%Y%m%d-%H%M%S)_${_jar} -fr
mv ${_his}/tmp/${_jar} ${_deploy}

 

e、多次編譯分發

image

重複圖上的這兩步,就可以完成一次構建中多次編譯、分發部署;圖上的CIFS Publish外掛是分發到windows目錄;

 

f、建立節點伺服器,可以將構建任務委託給節點伺服器去做;

image

相關文章