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這種依賴外掛要先配置好;
這裡設定一下JENKINS_HOME環境變數,這樣,所下載的外掛產生的資料都會到指定的目錄裡;不配的話預設是在home目錄;
3.具體配置如圖
a、這裡,可以更新需要的外掛,這裡用的jenkins1.652,更新外掛時,svn外掛不要更新了;剛開始更新後,從svn拉程式碼一直出錯;可能是外掛的相容性問題;
b、系統配置裡
配置好jdk、gradle、shell
c、裝下Publish over SSH外掛
圖1填寫密碼也可不填,圖2填私鑰所在路徑,圖3填私鑰值,圖4填預設遠端目錄
這裡的私鑰可以用 ssh-keygen -t rsa 生成,將生成的公鑰值放到遠端伺服器的authorized_keys 檔案裡,即可免碼登入;
d、新建條目,配置如下
圖上配置專案名稱、svn地址、svn登入名、密碼,及本地目錄;
圖上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、多次編譯分發
重複圖上的這兩步,就可以完成一次構建中多次編譯、分發部署;圖上的CIFS Publish外掛是分發到windows目錄;
f、建立節點伺服器,可以將構建任務委託給節點伺服器去做;