Jenkins: 配置自动化发布脚本

Jenkins 配置自动化发布脚本

  • 在Jenkins的 一个工程项目任务中, 点击左侧 配置 栏
  • 在下面的 Build Steps 中,点击上面的 可用的环境变量列表
    • 找到里面有一个 WORKSPACE 的变量
    • 这个变量指向我们的jenkins下工程项目源码的目录
    • 需要把这个变量利用起来
  • 在 Build Steps 下执行 shell,假设这是一个前端的工程
    echo $WORKSPACE
    cd $WORKSPACE
    npm install
    npm run build
    
    • 以上,就可以进行构建了, build 完成后, 会生成dist目录
    • 我们要发布的就位于 dist 目录下
  • 接下来就是ssh上传, 将 dist 目录下的文件部署到远程服务器
    • 回顾下之前 Dashboard / 系统管理 / 系统配置
    • 找到下面的 SSH Server, 找到 Hostname, 这里可能是一个 ip地址, 比如:192.168.3.22
    • 可以通过 ssh 登录服务器: $ ssh root@192.168.3.22
    • 假设之前在jenkins上填写默认的路径是 /root, 我们想要发布到 /root/resource/nginx 中
  • 现在要做文件上传发布,回到之前填写 执行 shell的地方,点击 增加构建步骤
  • 选择 Send files or execute commands over SSH
  • 这时候出现了 Send files orexecute commands over SSH 面板
  • 这里,出现 SSH Server面板, 之前配置好了,直接选择默认的 Server
  • 下面是 Transfers, Transfer Set Source files
    • 这里,填入 dist/**
  • 下面的 Remote directory 填入
    • /resource/nginx/项目名称目录
    • 按照之前配置,默认登录在了 /root 目录,所以这里只要如上填写即可
    • 前面不能添加 /root
  • 特别注意
    • 这里,直接上传到 /resource/nginx/项目名称目录 其实是不行的
    • 因为,如果之前有过发布,可能会导致上传不成功
    • 所以,这里上传目录应该填入 /resource/nginx/项目名称目录-tmp
    • 这里,先上传到一个临时目录,下面还有一个 Exec command 的表单需要填写命令
    • Exec command 中 填入
      rm -rf /root/resource/nginx/项目名称目录
      mv /root/resource/nginx/项目名称目录-tmp/dist /root/resource/nginx/项目名称目录
      rm -rf /root/resource/nginx/项目名称目录-tmp
      
    • 可以看出,这里对目录文件删除后进行更新
    • 点击最下面的 应用 按钮
  • 重新测试,回调项目中,点击 立即构建
  • 还有
    • 如果 /root/resource/nginx/ 映射已经绑定了某个域名,如 https://abc.com
    • 在访问 nginx 目录下的 项目名称目录 文件夹时候,这时候需要访问 https://abc.com/项目名称目录
    • 如果这个前端项目是一个vue2的项目,注意在 vue.config.js 中 publicPath 配置成 /项目名称目录
  • 这时候,整个发布流程就搞定了

相关推荐

  1. Jenkins: 配置自动化发布脚本

    2024-03-17 08:16:02       46 阅读
  2. Jenkins+Gitlab自动化部署配置

    2024-03-17 08:16:02       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-17 08:16:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-17 08:16:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-17 08:16:02       82 阅读
  4. Python语言-面向对象

    2024-03-17 08:16:02       91 阅读

热门阅读

  1. ISP相关

    ISP相关

    2024-03-17 08:16:02      42 阅读
  2. 2024.3.13-408学习笔记-C-数据在内存中的存储

    2024-03-17 08:16:02       39 阅读
  3. 前端小白的学习之路(CSS3 二)

    2024-03-17 08:16:02       47 阅读
  4. Vue基本用法

    2024-03-17 08:16:02       41 阅读
  5. 2024届 C++ 刷题 笔试强训 Day 02

    2024-03-17 08:16:02       43 阅读
  6. 请求头content-type的类型有什么?

    2024-03-17 08:16:02       42 阅读
  7. 发现数据之美:探索数据可视化的艺术与技术

    2024-03-17 08:16:02       40 阅读
  8. redis的基本知识点

    2024-03-17 08:16:02       37 阅读
  9. rust - windows窗口消息循环处理

    2024-03-17 08:16:02       41 阅读
  10. 测试人员如何进行需求分析?

    2024-03-17 08:16:02       45 阅读
  11. linux之LVM管理

    2024-03-17 08:16:02       45 阅读