前端小工具篇 - 快速触发jenkins

jenkins的一键触发

为什么会开发这个小工具?因为我受够了在那个jenkins界面找项目,找到了项目还要找对应的分支,出错率反正不低

1. 选择一个前端工程化工具

FIE 是由阿里国际UED-体验技术部开发的一款前端工程化工具 github.com/fieteam/fie 我们团队前端工程化就是基于它很早的一个版本创建的一个分支,单独优化部署到内网使用的

2. 项目根目录放一个xxx.config.js

module.exports = {
  toolkitConfig: {
    group: 'fe-pages',
    buildJob: {
      'k8s 开发环境': {
        jobName: 'dev-k8s-web-admin-xxxx', // 当前项目对应的jenkins的任务名称
        buildParams: {
          Branch_Tag: '%gitBranch%', // 模板渲染,执行时会读取git当前分支进行替换
          SERVER: '192.168.180.251', 
          status: 'build',
          script: 'build:prod'
        },
        deployParams: { // 有的项目构建和部署是分开的,所以就分了两步
          Branch_Tag: '%gitBranch%',
          SERVER: '192.168.180.251',
          status: 'deploy'
        }
      }
    }
  }
}
复制代码

3. 项目相关命令(本地执行)

xxx 指的终端调用的快捷指令,这个可以自定义。这里还有首次使用用户认证的过程,先不详细展开讲了

xxx jenkins --go # 构建+部署
xxx jenkins --stop # 停止正在构建的任务
复制代码

4. nodejs后端相关的处理 (大概流程)

  • 校验终端拼接的数据是否有效
  • 检查是否有同项目任务在执行
  • 查询当前用户的飞书open_id 为后续发消息做准备
  • 创建redis hset数据,将前几步所有数据放进去,并设置状态
  • 开始触发jenkins openAPI构建,定时任务开始论序状态
  • 成功/失败/被动中断/手动中断,任务结束,删除redis列数据

类似下面这个case判断,每一步都有的一个状态,其他状态也会再更新该redis的数据,为后续状态使用

image.png

5. 正式使用过程中的截图

用的飞书网页版,一系列骚操作后才去除了水印。这个地方的卡片从创建到结束状态都是更新式的,不会发送多次卡片信息。 这个工具本来是针对我们前端团队使用的,被后端同事发现了就慢慢的都用上这个小工具了

image.png

image.png

image.png

image.png

其他业务的尝试

  • 一键实现mergeRequest,并飞书通知+审核
  • ci/cd,k8s跨系统构建部署步骤通知触达
  • 基于飞书的事件订阅,实现飞书机器人对话消息速记

猜你喜欢

转载自juejin.im/post/7095673719476994055
今日推荐