前端仔玩 Jenkins Git Webhook自动部署+钉钉机器人通知

238 阅读2分钟

Docker 安装 Jenkins

docker run \
--name jenkins \
-p 8080:8080 \
-p 50000:50000 \
-d \
-v /your/path/jenkins:/var/jenkins_home \
--restart=always \
jenkins/jenkins:lts

初始设置

  1. 初始化 Jenkins admin 账号,在日志里寻找解锁密码

    解锁 Jenkins

    docker logs jenkins
    

    管理员密码

  2. 安装推荐的插件,等待⌛️

    安装推荐的插件

  3. 创建管理员用户

    创建管理员用户

  4. 配置 Jenkins URL ,默认为当前链接即可

    配置 Jenkins URL

  5. 已就绪

    已就绪

插件安装

  1. 进入 Jenkins 插件页(Mange Jenkins - Plugins)

  2. 安装以下插件,安装完成后记得勾选重启或手动重启服务:

    • Generic WebHook Trigger
    • NodeJS
    • Publish over SSH
    • DingTalk

    安装插件

插件配置

Publish over SSH

  1. 来到 系统管理 - 系统配置 - Publish over SSH

  2. 在 Jenkins SSH Key 的 Key 中粘贴构建后产物部署的服务器的 SSH 私钥

    SSH 证书私钥

  3. 在 SSH Servers 新增构建后产物部署的服务器

  4. 按照实际情况填写,填写完后可以进行连接测试

    SSH 服务器

  5. 保存

NodeJS

  1. 来到 系统管理 - 全局工具配置 - NodeJS

    NodeJS

  2. 新增 NodeJS,选择你要安装的版本和全局包

    NodeJS 配置

  3. 保存

DingTalk

  1. 来到 系统管理 - 未分类 - 钉钉

  2. 新增机器人

  3. 填入钉钉提供的 Webhook 连接和加密

    机器人

    机器人配置

  4. 可以进行测试,保存

新增任务

  1. 选择构建一个自由风格的软件项目

    新建任务

    1. 添加钉钉机器人

      添加机器人

    2. 源码管理选择 Git 并填入相关信息

      1. 如果仓库需要鉴权,就需要添加私人令牌,相关链接:GitHubGitee

      2. 添加认证信息的密码需要使用私人令牌而不是 Git 账号密码

      3. 看情况填写指定构建分支

      4. 配置参考

        Git 配置参考

    3. 构建触发器勾选 Generic Webhook Trigger

      构建触发器

    4. 在 Post content parameters 处如图填写

      触发器配置

    5. Token 处填写你想在触发 Webhook 时的 Token

      触发器 Token

      1. Optional filter 处如图填写,过滤指定分支才进行构建,例如将 develop 改成 release,这时候,只有 release 分支推送代码后才会执行构建流程

        触发器过滤

      2. 构建环境处勾选 Provide Node & npm bin/ folder to PATH,同时选择构建时用的 node 版本

        构建环境

      3. 构建步骤选择执行 shell

      4. 写入项目打包 shell,并将打包产物文件进行压缩(因为前面配置 NodeJS 时已经将 pnpm 加入了全局包,所以可以直接调用 pnpm 指令)

      pnpm i
      pnpm build
      
      tar -zcvf dist.tar.gz dist/
      rm -rf dist/
      
      1. 构建后操作选择 Send build artifacts over SSH

      2. 如图按实际情况填写

        构建后操作

      3. 保存,可以尝试执行第一次编译