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、创建节点服务器,可以将构建任务委托给节点服务器去做;