Gitlab CI/CD - 向 gitlab UI 发送评论/警报?

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 上的某个位置,而不是在作业终端上显示此回显?

Ric*_*ard 6

以下是如何使用 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)