簡體   English   中英

Gitlab CI/CD - 向 gitlab UI 發送評論/警報?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM