TAPD 集成 GitLab

举报
kaliarch 发表于 2021/11/14 18:27:33 2021/11/14
【摘要】 一 背景 1.1 需求开发人员提交的代码无法自动和tapd上的story或task相关联,需要人工强制将提交的合并请求与tapd上面的ID关联,且无法无法形成有效记录和需要tapd与gitlab联动,tapd提供源码提交趋势,并自动关联提交的。在Gitlab CI完成后配置消息通知,检测服务器异常,已经pipeline发布状态,进行通知。 1.2 场景gitlab 提交代码带上commit...

一 背景

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源码

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

DevOPS项目webhook:

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

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

2.2 关联Gitlab CI

  • 在Gitlab 项目中集成tapd

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

三 Tapd配置流水线

3.1 代码关联

3.2 持续集成关联

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

3.3 代码质量分析

TAPD支持关联主流代码检测工具。可以将团队正在使用的检测工具与TAPD进行关联,通过TAPD流水线查看每次代码扫描结果,进行问题跟踪与解决。

代码质量检测依赖于已关联的持续集成服务。以Jenkins为例,在Jenkins中安装SonarQube服务及插件,在已关联的构建任务中配置SonarQube步骤,即可通过TAPD流水线查看每次质量分析数据。

3.4 制品管理

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

3.5 自动化测试

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

3.6 发布部署

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

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

注意:在提交代码的时候规范:

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

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

image.png

四 gitlab CI通过企业微信机器人通知

4.1 获取企业微信机器人webhook

可以在最后一步通过企业微信机器人通知构建消息。

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

机器人的webhook如下:

https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=777c9exxxxxxxxxxxxxxxxxxxxxxxxxx5c

4.2 gitlab 配置机器人webhook

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

4.3 在gitlab ci中集成通知

由于使用了gitlab 共享模版库,集成非常方便,只需在gitlabci-templates的check job中集成即可

.check:
  script:
    - echo -e "\033[5;35;40m check ${APP_NAME} in k8s ${DEPLOY_ENV} environment status... \033[0m"
    - kubectl rollout status -w --timeout=300s deployment/${APP_NAME}-deploy -n ${NAMESPACE} &&
      curl ${WECHAT_WEBHOOK} -H 'Content-Type:application/json' -d "{\"msgtype\":\"markdown\",\"markdown\":{\"content\":\"${PROJECT_NAME}项目构建结果:<font color=\\"info\\">成功</font>\n>本次构建由:$GITLAB_USER_NAME 触发\n>项目名称:$CI_PROJECT_NAME\n>提交号:$CI_COMMIT_SHA\n>提交日志:$CI_COMMIT_MESSAGE\n>构建分支:$CI_COMMIT_REF_NAME\n>镜像信息:${REGISTRY}/${NAMESPACE}/${APP_NAME}:${APP_TAG}\n>流水线地址:[$CI_PIPELINE_URL]($CI_PIPELINE_URL)\"}}" ||
      curl ${WECHAT_WEBHOOK} -H 'Content-Type:application/json' -d "{\"msgtype\":\"markdown\",\"markdown\":{\"content\":\"${PROJECT_NAME}项目构建结果:<font color=\\"warning\\">失败</font>\n>本次构建由:$GITLAB_USER_NAME 触发\n>项目名称:$CI_PROJECT_NAME\n>提交号:$CI_COMMIT_SHA\n>提交日志:$CI_COMMIT_MESSAGE\n>构建分支:$CI_COMMIT_REF_NAME\n>镜像信息:${REGISTRY}/${NAMESPACE}/${APP_NAME}:${APP_TAG}\n>流水线地址:[$CI_PIPELINE_URL]($CI_PIPELINE_URL)\"}}"

  retry:
    max: 1
    when:
      - always
  allow_failure: true

五 注意事项

  • 将tapd上面源码集成中生成的webhook配置到gitlab时,不能在gitlab的组中集成中配置,需要在涉及到单个项目中配置。
  • tapd 任务与gitlab 联动,需要在提交代码的时候复制源码提交关键字。

参考资料

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。