一 背景

1.1 需求

开发人员提交的代码无法自动和[​​tapd​​上的story或task相关联,需要人工强制将提交的合并请求与tapd上面的ID关联,且无法无法形成有效记录和 需要tapd与gitlab联动,tapd提供源码提交趋势,并自动关联提交的。 在Gitlab CI完成后配置消息通知,检测服务器异常,已经pipeline发布状态,进行通知。

1.2 场景

  • gitlab 提交代码带上commit号,在tapd上关联图形化展示
  • tapd流水线集成企业使用持续集成平台,将持续集成平台数据在tapd流水线可视化。
  • 通过企业微信机器人对流水线进行通知。
二 Gitlab配置

2.1 获取webhook信息

  • 在Tapd的项目中的应用配置->添加应用->Gitlab源码

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_代码质量

  • 开启Secret Token,获取到webhook url和项目token

DevOPS项目webhook:

yaml
Webhook URL:https://www.tapd.cn/hook/index/67xxxxx24/6930c28xxxxxxxxxxxxxxxx
Secret Token:af07d3xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_代码质量_02

当gitlab 提交代码的时候可以通过POST请求通知到TAPD中。

2.2 关联Gitlab CI

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_git_03

  • 在Gitlab 项目中集成tapd

在项目->设置->集成中新增webhook。

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_git_04# 聊一聊悟空编辑器 #TAPD 集成 GitLab_自动化测试_05

三 Tapd配置流水线

3.1 代码关联

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_代码质量_06

3.2 持续集成关联

关联工具平台,TAPD支持关联Jenkins、Gitlab CI等工具平台。通过与TAPD进行联系,可以在TAPD查看指定构建任务的范围、结果与构建历史。

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_git_07

3.3 代码质量分析

TAPD支持关联主流代码检测工具。可以将团队正在使用的检测工具与TAPD进行关联,通过TAPD流水线查看每次代码扫描结果,进行问题跟踪与解决。 代码质量检测依赖于已关联的持续集成服务。以Jenkins为例,在Jenkins中安装SonarQube服务及插件,在已关联的构建任务中配置SonarQube步骤,即可通过TAPD流水线查看每次质量分析数据。

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_提交代码_08

3.4 制品管理

制品/包管理依赖于已关联的持续集成服务。以Jenkins为例,在Jenkins中安装Nexus插件,通过在构建任务中添加Nexus Repository Manager Publisher 步骤,即可将每次构建制品信息展示在TAPD流水线中。

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_代码质量_09

3.5 自动化测试

自动化测试执行依赖于已关联的持续集成服务。以Jenkins为例,在Jenkins 构建任务中配置自动化测试步骤,并在构建后步骤中添加“TAPD自动化测试报告解析”任务,填写自动化测试结果文件路径,即可在TAPD流水线中查看用例执行情况及测试报告。

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_自动化测试_10

3.6 发布部署

部署发布依赖于已关联的持续集成服务。以Jenkins为例,在Jenkins中安装Ansible插件,通过在构建任务中添加 Invoke Ansible Playbook步骤,即可在TAPD流水线中查看部署发布信息。

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_自动化测试_11

集成完成后,后续就可以通过gitlab 与tapd进行联动,从tapd上跳转到gitlab对应的代码提交页面。 注意:在提交代码的时候规范:

ll
# 先写自己修改的内容:
fix: fix a bug
---
# 复制story中的源码提交关键字
--story=10xxxx70 --user=kaliarch 【示例】父需求 https://www.tapd.cn/48xxxxx5/s/1xxxxx

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_代码质量_12

在gitlab 提交代码,在tapd查看流水线详情:

# 聊一聊悟空编辑器 #TAPD 集成 GitLab_git_13# 聊一聊悟空编辑器 #TAPD 集成 GitLab_持续集成_14image.png四 gitlab CI通过企业微信机器人通知

4.1 获取企业微信机器人webhook

可以在最后一步通过企业微信机器人通知构建消息。 可以先在企业微信拉取研发人员群,利用手机操作在群内拉去机器人,之后在构建的时候通过机器人通知。 机器人的webhook如下:

4.2 gitlab 配置机器人webhook

为保障微信机器人webhook 的安全性,将其配置在组的环境变量中,方便在ci中进行引用。

4.3 在gitlab ci中集成通知

由于使用了gitlab 共享模版库,集成非常方便,只需在gitlabci-templates的check job中集成即可
![" title="image.png四 gitlab CI通过企业微信机器人通知

4.1 获取企业微信机器人webhook

可以在最后一步通过企业微信机器人通知构建消息。 可以先在企业微信拉取研发人员群,利用手机操作在群内拉去机器人,之后在构建的时候通过机器人通知。 机器人的webhook如下:

4.2 gitlab 配置机器人webhook

为保障微信机器人webhook 的安全性,将其配置在组的环境变量中,方便在ci中进行引用。

4.3 在gitlab ci中集成通知

由于使用了gitlab 共享模版库,集成非常方便,只需在gitlabci-templates的check job中集成即可
![" style="visibility: visible; width: 1034px; height: 686px;">

五 注意事项
  • 将tapd上面源码集成中生成的webhook配置到gitlab时,不能在gitlab的组中集成中配置,需要在涉及到单个项目中配置。
  • tapd 任务与gitlab 联动,需要在提交代码的时候复制源码提交关键字。
参考资料
  • https://work.weixin.qq.com/api/doc/90000/90136/91770