zoukankan      html  css  js  c++  java
  • 【CI/CD】使用Jenkins部署VUE项目到windows服务器_配置Jenkins项目(4)

    一、分析准备

     接上文,我们的前端代码是通过git管理的,需求是通过Jenkins拉取前端VUE代码并且编译生成待部署的部署包。经过分析,我们需要做如下的准备:

    1、Jenkins的机器能拉取git代码并编译;——已完成

    2、Jenkins的机器能通过SSH连接项目所在的windows server服务器;——已完成

    3、新建Jenkins任务将编译、部署串起来;——本期目标

    PS:项目的情况如下

    Jenkins机器

    1台,部署在windows机器

    项目语言 VUE纯前端
    项目部署服务器 1台,windows server服务器

    二、Jenkins项目配置

    新建自由风格的项目

    由于项目使用git管理代码,这里进行git相关配置。注意使用最开始配置的全局凭证,即Jenkins机器生成的私钥。

     

    构建触发器请参考注释按需配置,由于目前我们项目只需要手动触发构建,这里就不选了。

      由于项目是VUE项目,这里要配置使用nodejs(前文在Global Tool Configuration中配置)环境进行编译。(参考https://www.cnblogs.com/chooperman/p/14061469.html)

     由于我部署Jenkins服务的机器也是windows的,这里选择使用windows命令进行拉取代码后的编译(下图1)及后续处理(下图2)。

    使用如下命令后,最终会在 %WORKSPACE%目录下,生成dist.tar的压缩包,后续将其直接放入项目服务器解压即可。

     

      附上相关代码

    call echo 构建_01注册淘宝镜像
    call npm config set registry https://registry.npm.taobao.org
    call echo 构建_02检查注册结果
    call npm config get registry
    call echo 构建_03依赖安装
    call npm install
    call echo 构建_04编译打包
    call npm run build
    call echo 构建后处理_01进入dist目录
    call cd dist
    call echo 构建后处理_02压缩编译包
    call tar cvf dist.tar *
    call echo 构建后处理_03压缩包放入工作目录
    call xcopy /s/y dist.tar %WORKSPACE%

    得到上述产物包后,使用Send files or execute commands over SSH命令,选择配置好的远程服务器,按下图将包发送到项目服务器上。

     

      接下来,使用Execute shell script on remote host using ssh命令,选择项目所在服务器,进入指定的目录,执行该目录下已经提前配置好的bat脚本,进行产物包挪位置,解压、删除等操作。

     

      注意:由于前文提到使用powerShellServer工具连接到远程服务器后,其命令行所在的默认的路径(下图1),并不是将代码包复制过去的路径(下图2、图3),而我们把bat脚本也放在了代码包复制过去默认存储的路径,因此要注意切换到对应目录执行bat脚本。

      

      

      然后说明下bat脚本的主要作用,主要是将产物包从临时目录复制到项目部署所需目录,然后进入该目录对其进行解压,解压后删除废弃的产物包。这里暂时没有对原代码包进行备份等操作,各位按需进行。

     上述所有内容配置完后,保存即可。

    接下来进行调试看看,由于前面准备工作比较到位,查看控制台输出发现一次成功了。

     

      最后,建议直接访问项目的web地址,通过实际的功能界面确认下代码是否已部署最新的了。

    好了,经过这些天的调试,终于能使用Jenkins部署代码到windows server服务器了。总结下来,耽误比较多精力的是

    1、项目服务器是阿里云,一开始不清楚没有及时找管理员开放ssh端口导致调试耽误很长时间;

    2、在ssh工具的选择上,花费了很多时间,最终仅使用powershellServer成功了;

    3、Jenkins部署所在机器各类环境的安装,nodejs、git等等;

    还是linux好用点,哈哈哈~

  • 相关阅读:
    flutter 报错DioError [DioErrorType.DEFAULT]: Error on line 1, column 17: Invalid media type: expected no more input.
    flutter 报错 DioError [DioErrorType.DEFAULT]: Bad state: Insecure HTTP is not allowed by platform
    什么是负载测试?什么是性能测试?
    性能测试包含了哪些测试(至少举出3种)
    简述使用Loadrunner的步骤。
    什么时候可以开始执行性能测试?
    apache ab压力测试工具
    webbench 的安装以及使用
    python3 django 电影网站项目
    音乐网站 前端html5模版
  • 原文地址:https://www.cnblogs.com/chooperman/p/14077964.html
Copyright © 2011-2022 走看看