Jenkins + Vue 项目自动化部署

最近公司项目在测试前端项目,需要频繁的进行更换文件,虽然工作量不大,但是频繁的重复工作有点降低了工作效率,于是就搭建了jenkins + Vue 的自动化部署,可以实现自己拉取代码+构建+然后再发到web服务器上面,只需要告诉开发Jenkins的地址,去点一下鼠标就能实现自动化部署了。

环境介绍:
系统:CentOS Linux release 7.6.1810 (Core)
JDK:java version “1.8.0_172”
Tomcat:apache-tomcat-8.5.40
Jenkins:Jenkins2.164.2
yarn:1.15.2
node:v6.17.1
git version :1.8.3.1

前言:本篇文章需要在已有Jenkins的条件下才可以进行,还没有安装Jenkins的可以去看我的文章Jenkins搭建 ,也可以去看其他大神的文章,这里就不赘述了。

一、准备工作
1、安装git (拉代码所用)
这个很简单,直接yum安装即可

[[email protected] ~]# yum -y install git
[[email protected] ~]# git --version
git version 1.8.3.1

2、安装yarn(用来构建的工具,也可以用npm,不过前端的同事说效果都一样,但是yarn的更稳定快速,这里就用yarn)

直接yum -y install yarn是会报错的,没有这个包,所以先添加yarn的源,执行面的命令即可

[[email protected] ~]# curl --silent --location https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo

[[email protected] ~]#yum -y install yarn

[[email protected] ~]# node -v
v6.16.0

[[email protected] ~]# yarn -n
yarn install v1.15.2


二、在Jenkins安装相关插件
Jenkins + Vue 项目自动化部署
Jenkins + Vue 项目自动化部署

搜索并安装NodeJS Plugin(构建工具)、Publish Over SSH(用于远程发送构建好的包到服务器) ps:我已经安装了所以这里搜不到)
Jenkins + Vue 项目自动化部署
安装完后去配置一下让jenkins能够使用Node插件
Jenkins + Vue 项目自动化部署
Jenkins + Vue 项目自动化部署
配置需要远程的Web服务器(这里只演示一台,如果有多台Web服务器,重复这部操作即可)

Jenkins + Vue 项目自动化部署
拉到下面,找到Publish over SSH
Jenkins + Vue 项目自动化部署

增加需要部署的Web服务器
Jenkins + Vue 项目自动化部署
测试一下看是不是成功
Jenkins + Vue 项目自动化部署

三、配置自动部署的任务
1、创建一个*风格的项目
Jenkins + Vue 项目自动化部署

2、配置
Jenkins + Vue 项目自动化部署

(1)、先配置代码库
代码库由于前端开发的代码是放在git上的,这里就选了git,如果是放在SVN上的选下面的Subversion就可以了
Jenkins + Vue 项目自动化部署
(2)、填写一个可以登录到代码库的账号和密码然后点添加
Jenkins + Vue 项目自动化部署

(3)配置构建环境 选择 Provide Node & npm bin/ folder to PATH
Jenkins + Vue 项目自动化部署

(4)配置自动化打包
选择 增加构建步骤 —Excute shell

命令附上

cd /root/.jenkins/workspace/test-bbs  #进入项目目录
yarn install   #构建操作,照着填即可
yarn build     #构建操作,照着填即可
cd dist       #构建完成后在当前目录生成一个dist目录,里面存放的就是我们需要打包的文件,所以进去执行打包命令
#rm -rf test-bbs.tar.gz   #删除上次打包生成的压缩文件,打包的时候会自动删除整个dist文件夹无需这一步
tar -zcvf test-bbs.tar.gz *   #把新生成的项目打包tar包方便传输到远程服务器
cd ../

Jenkins + Vue 项目自动化部署

(5)打包好后把tar包发送到远程服务器并执行解包
选择“构建后操作步骤 —“Send build artifacts over SSH” 。

cd /var/www/html/bbs/   #进入到放置bbs的资源目录
rm -rf *                           #先删除旧的文件
mv /root/node/bbs/test-bbs.tar.gz /var/www/html/bbs/   #把从jenkins上发送过来的新包移到资源目录
tar -xf test-bbs.tar.gz            #进行解压
#rm -rf  test-bbs.tar.gz           #解压完成后删掉解压包
cd /var/www/html/                #进入网站目录
chmod -R o=rx bbs         #给予目录读和执行权限

Jenkins + Vue 项目自动化部署

Name:第二步创建的远程服务器名称

Source files:本地需要传输过去的文件路径

Remove prefix:过滤掉的目录名

Remote directory:远程服务器的保存路径

Exec command:传输完成后在远程服务器执行的shell命令

然后点击保存

四、配置完成后点击立即构建
Jenkins + Vue 项目自动化部署
点进去查看控制台输出,看有没有报错
Jenkins + Vue 项目自动化部署

Jenkins + Vue 项目自动化部署