在项目开发过程中,开发人员每天需要部署更新测试环境,如果是分布式项目,多个工程构建发布,需要较大的时间成本。所以这边考虑搭建jenkins来实现自动化构建。
这边先介绍centOS搭建jenkins过程:
1、安装jdk1.8,安装有多种方式不做详细介绍,此次以yum为例
yum install java-1.8.0-openjdk
vi /etc/profile
JAVA_HOME=/usr/lib/jvm/java
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME CLASSPATH PATH
2、安装jenkins安装包
wget http://pkg.jenkins-ci.org/redhat-stable/jenkins-2.7.3-1.1.noarch.rpm
rpm -ivh jenkins-2.7.3-1.1.noarch.rpm
3、启动jenkins
service jenkins start
4、jenkins初始配置 ,新增用户
5、用新增后的管理员账户,登录jenkins
至此jenkins已经搭建完成。下面开始配置后端工程自动化构建:
1、系统管理-全局工具配置 新增部分全局配置
配置setting文件、JDK、Git安装目录
配置Maven安装目录和NodeJS (vue构建需要用到)
系统管理---插件管理 安装Maven和Node插件
2、新建job,构建一个maven项目
3、配置项目相关,注意:这里坑很多 (此处版本控制工具以gitlab为例)
一、先配置gitlab地址和账户,注意linux需要先切换到jenkins用户,再去生成gitlab的sshkey,然后拷贝gitlab下,这里不详细说明,如果不切换jenkins用户,这里源码将连接不了!
这里解释下几个输入
username为jenkins,passphrase为ssh登录密码,key为git私钥,在下图里,jenkins为私钥,jenkins.pub为公钥
(PS:里面如果不清楚会卡很久)
二、配置pom文件相对路径
三、 配置编译后远程服务器地址和账号
四、 配置发送远程服务文件和发送后操作
五、在远程服务器 /app/jenkins/script下编写shell脚本
#!/bin/bash
export BUILD_ID=dontKillMe
echo "stop app tomcat..."
pid_service=`ps -ef|grep tomcat-app-service-8090|grep -v "grep"|awk '{print $2}'`
kill -9 $pid_service
echo "KILL $pid_service:"
pid_web=`ps -ef|grep tomcat-app-web-8091|grep -v "grep"|awk '{print $2}'`
kill -9 $pid_web
echo "KILL $pid_web:"
cd /app/poseidon/tomcat-app-service-8090/webapps
rm -rf app-service
rm -rf app-service.war
cp /app/jenkins/app-service.war ../webapps/
cd ../bin/
./startup.sh
cd /app/poseidon/tomcat-app-web-8091/webapps
rm -rf app-web
rm -rf app-web.war
cp /app/jenkins/app-web.war ../webapps/
cd ../bin/
sleep 30
./startup.sh
cd /app/jenkins/
rm -rf app-service.war
rm -rf app-web.war
上面脚本如果熟悉shell脚本,应该很容易看懂,不清楚自己百度下
大概流程是 先停掉tomcat,删除tomcat下war包,从jenkins目录下拷贝过来,然后重启tomcat的一个简单过程
六、保存配置后,运行工程
七、可以在Console Output查看输出日志
八、success则为构建成功
下面简单介绍下自动化构建vue前端工程
一、其他配置基本一样,可参考以上,需要先配置node插件
二、编写编译脚本
echo $PATH
node -v
npm -v
cd ls-dedao
npm install chromedriver --chromedriver_cdnurl=http://cdn.npm.taobao.org/dist/chromedriver
npm install
npm run build
cd /var/lib/jenkins/workspace/dist/app_h5
npm install
npm run build
cp -r /var/lib/jenkins/workspace/dist/app_h5/dist /var/lib/jenkins/workspace/dist/ls-dedao/dist
cd /var/lib/jenkins/workspace/dist/ls-dedao/dist
mv dist app
cd ../
rm -rf html
rm -rf html.tar.gz
mv dist html
tar zcvf html.tar.gz html
三、编译成功后发送远程服务器
四、编写远程服务器shell脚本
#!/bin/bash
export BUILD_ID=dontKillMe
cd /app/poseidon/
rm -rf html
tar -xvf html.tar.gz
sleep 3
rm -rf html.tar.gz
五、同样success则为成功
至此maven+tomcat+vue项目已实现远程服务器自动化构建,可以在配置里设计定时构建时间。
这里jenkins建议不要以docker来装,相关环境以及路径相对较麻烦,坑较多。