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、創建節點服務器,可以將構建任務委托給節點服務器去做;