赞
踩
在项目开发过程中,开发人员每天需要部署更新测试环境,如果是分布式项目,多个工程构建发布,需要较大的时间成本。所以这边考虑搭建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来装,相关环境以及路径相对较麻烦,坑较多。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。