美文网首页
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