美文网首页
svn+jenkins+IIS 自动化打包部署uni-app

svn+jenkins+IIS 自动化打包部署uni-app

作者: 肉包君 | 来源:发表于2020-08-21 11:58 被阅读0次

2020-08-20

svn+jenkins+IIS 自动化打包部署uni-app

流程:svn提交代码---jenkins自动拉取最新代码至本地服务器---jenkins本地编译打包成H5模式---jenkins压缩代码并拷贝到云服务器---jenkins远程执行Windows脚本部署H5代码

环境:
svn:Windows 172.10.0.108
jenkins:Centos7.6 172.10.0.21
IIS:Windows(部署项目的服务器) 47.115.150.122(云服务器)
项目源码:https://github.com/dcloudio/hello-uniapp

默认svn服务器已搭建好,参考https://www.cnblogs.com/kinwing/p/11093843.html
默认jenkins已搭建好(自行百度),并且已安装nodejs和npm,参考https://www.jianshu.com/p/e8eb4d3c51e5
默认IIS已安装好(自行百度)
默认云服务器已安装sshd,端口22,创建虚拟账号test,密码11 ,参考https://www.jianshu.com/p/a30e71a77279
默认云服务器安装了解压zip包的工具,下载地址http://gnuwin32.sourceforge.net/packages/unzip.htm
直接双击安装即可,然后把安装目录下的bin目录下的unzip.exe文件拷贝到C:\Windows目录下

在svn对应的目下创建账号密码,以便jenkins能够连接svn代码库,实时拉取最新代码


a1.jpg

在svn中建一个仓库,将项目代码提交到仓库中

jenkins页面创建项目test,自由风格,源码管理配置如下

a2.png

构建触发器配置如下(每分钟检测svn的代码是否有更新)


a3.png

构建,选择执行脚本shell,内容如下

pwd      #查看当前所在位置,/var/lib/jenkins/jenkins-home/workspace/test (点击构建后,默认在jenkins的工作目录下自动生成与项目名称一致的目录,目录下是从svn拉取下来的代码)
cd ..     #退出到jenkins的工作目录
whoami     #查看当前的用户身份,测试用的,可删掉
rm -rf ./Test/test      #删除旧项目 
mv -f ./test ./Test     #把svn更新后的项目移至Test目录下
cd ./Test
rm -rf ./my-project/src/*
cp -rf ./test/*  ./my-project/src/       #将项目源码放到src目录下
cd ./my-project/
rm -rf node_modules dist      #删除旧的依赖和打包项
npm install       #编译
npm run build:h5       #打包成h5
cd ./dist/build/h5/ 
zip -r h5.zip ./*     #将h5目录下的内容打包成zip包

#脚本作用:将zip包和Windows脚本发送到目标主机的指定目录下
/usr/bin/expect /var/lib/jenkins/jenkins-home/shell/cp-test.sh     #执行脚本
#脚本作用:远程执行Windows脚本
/usr/bin/expect /var/lib/jenkins/jenkins-home/shell/exec.sh

jenkin服务器操作

npm install -g @vue/cli     #安装全局vue-cli
cd /var/lib/jenkins/jenkins-home/workspace
mkdir Test
cd Test
vue create -p dcloudio/uni-preset-vue my-project      #下载正式版的uni-app框架(下载过程中选择默认模板)
cd /var/lib/jenkins/jenkins-home/
mkdir shell       #专门方脚本的地方
cd shell
vim cp-test.sh
  #!/usr/bin/expect
  set timeout 30
  spawn scp -P22 -r /var/lib/jenkins/jenkins-home/workspace/Test/my-project/dist/build/h5/h5.zip /var/lib/jenkins/jenkins-home/shell/deploy.bat test@172.10.0.108:/D:/Web/
  expect "password:"
  send "11\r"
  expect eof
vim deploy.bat test       #windows 脚本,用的时候删掉注释和多余空格
  rd /S/Q D:\Web\test\h5      #删除目录及目录下的所有内容
  md D:\Web\test\h5     #创建目录
  unzip D:\Web\h5.zip -d D:\Web\test\h5     #解压jenkins拷贝过来的项目
  del /S/Q D:\Web\h5.zip     #删除压缩包
  del /S/Q D:\Web\deploy.bat      #删除脚本
vim exec.sh
  #!/usr/bin/expect
  set timeout 30
  spawn ssh test@172.10.0.108 -p22 "D:/Web/deploy.bat"
  expect "password:"
  send "11\r"
  expect eof

chmod a+x cp-test.sh deploy.bat test exec.sh      #赋予可执行权限

云服务器上操作
创建目录D:\Web\test\h5
打开 Internet信息服务(IIS)管理器
建网站

a4.png

最后回到jenkins页面,点击构建项目即可
观察控制台输出和网站变化

相关文章

网友评论

      本文标题:svn+jenkins+IIS 自动化打包部署uni-app

      本文链接:https://www.haomeiwen.com/subject/rhrejktx.html