[英]Gitlab CI/CD - sending comments/alerts to the gitlab UI?
目前我的 .gitlab-ci.yml 文件中有这一行:
if (( $coverage < $MIN_COVERAGE )) ; then echo "$coverage% of code coverage below threshold of $MIN_COVERAGE%" && exit 1 ; else exit 0 ; fi
$coverage
是代码的测试覆盖率,由 pytest-cov 确定
$MIN_COVERAGE
是指定的最低测试覆盖率水平,$coverage 不应低于该水平
目前,如果覆盖率为 70% 且 min_coverage 为 80%,则会导致管道失败。 还会向终端打印一条消息:“$coverage% of code coverage below the threshold of $MIN_COVERAGE%”
但是,此消息仅显示在 gitlab 作业的终端中,因此如果有人想了解他们的管道失败的原因和程度,他们需要进入作业终端并查看输出。
有没有办法让这个消息输出到 gitlab UI 的某个地方,而不是让这个回显到工作终端?
如果您订阅了 GitLab Premium 或更高版本,则可以使用指标报告在 MR UI 中公开任何指标,包括覆盖百分比。
在 GitLab 的所有层级中, 覆盖可视化也是可用的,但我不清楚这是否显示了整体覆盖百分比。
或者,您可以使用 API 向合并请求添加注释(您可以从作业中的预定义变量中获取 MR ID)。 但是,您需要为 CI 作业提供 API 令牌——您不能使用内置作业令牌来添加注释。
以下是如何使用 GitLab API 创建新的合并请求注释/评论。
script:
# Project -> Settings -> Access Tokens, Create token with API scope.
# Project -> Settings -> CI/CD -> Variables, Store as CI_API_TOKEN
# GET /merge_requests?scope=all&state=opened&source_branch=:branch_name
- |
merge_request_iid=$( \
curl --request GET \
--header "PRIVATE-TOKEN: ${CI_API_TOKEN}" \
"${CI_API_V4_URL}/merge_requests?scope=all&state=opened&source_branch=${CI_COMMIT_REF_NAME}" | \
jq .[0].iid \
)
# POST /projects/:id/merge_requests/:iid/notes
- json_data='{"body":"Your message, here"}'
- |
echo $json_data |
curl --request POST \
--header "PRIVATE-TOKEN: ${CI_API_TOKEN}" \
--header "Content-Type: application/json" \
--data @- \
"${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/merge_requests/${merge_request_iid}/notes"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.