bou*_*ieu 5 bash code-coverage gitlab gitlab-ci-runner cicd
目前我的 .gitlab-ci.yml 文件中有这一行:
if (( $coverage < $MIN_COVERAGE )) ; then echo "$coverage% of code coverage below threshold of $MIN_COVERAGE%" && exit 1 ; else exit 0 ; fi
Run Code Online (Sandbox Code Playgroud)
$coverage是代码的测试覆盖率,由 pytest-cov 确定
$MIN_COVERAGE是指定的最低测试覆盖率水平,$coverage 不应低于该水平
目前,如果覆盖率为 70% 并且 min_coverage 为 80%,这会导致管道失败。一条消息也会打印到终端:“代码覆盖率的 $coverage% 低于 $MIN_COVERAGE% 的阈值”
但是,此消息仅显示在 gitlab 作业的终端中,因此如果有人想了解管道失败的原因以及失败的程度,他们需要进入作业终端并查看输出。
有没有办法让此消息输出到 gitlab UI 上的某个位置,而不是在作业终端上显示此回显?
以下是如何使用 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"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3287 次 |
| 最近记录: |