对于我大学的讲座练习,我们必须编写一些代码来解决特定问题。根据我们的解决方案的执行情况,我们会得到一个分数。这一切都是通过运行一个脚本来实现的,该脚本为您提供了一个完美的运行 CI 的结果。
现在这是一个小组项目,所以我很想有办法在 UI 中报告分数,例如执行合并请求时,我不必每次都滚动终端输出。
通常会为此使用 artifact reports。虽然其中大部分似乎是特定于应用程序的(例如 junit test reports),但看起来 dotenv report 最接近我想要的。
但是我发现没有办法直接在 UI 中公开这些值。据我所知,工件报告应该在合并请求视图中显示为小部件。但是我发现这对我来说并非如此。
公开运行 CI 时生成的值以快速查看特定分支或提交实现的分数的方法是什么?
我目前拥有的精简 CI 配置
image: python
run-test:
script:
# These are some logs generated by running the validation script
- echo 1,2,3,4 > some_logs.csv
# This is the result value I'd like to expose
- echo result=12.34 > results.env
artifacts:
paths:
- some_logs.csv
reports:
dotenv: results.env
我的大学运行 GitLab CE 13.7
答案 0 :(得分:1)
根据 Arty-chan 的评论,我更新了我的 CI 配置以执行对 GitLabs API 的 POST 请求。
示例配置:
image: python
run-test:
script:
# These are some logs generated by running the validation script
- echo 1,2,3,4 > some_logs.csv
# This is the result value I'd like to expose
- echo result=12.34 > results.env
# Only perform POST if $CI_MERGE_REQUEST_IID is set
- '[ -z "$CI_MERGE_REQUEST_IID" ] && curl --request POST --header "PRIVATE-TOKEN: <your API token>" "https://<instance url>/api/v4/projects/$CI_PROJECT_ID/merge_requests/$CI_MERGE_REQUEST_IID/notes?body=<message>"'
artifacts:
paths:
- some_logs.csv
请注意,所有 <...>
都需要替换为适当的值。另请注意,应在合并请求时设置 $CI_MERGE_REQUEST_IID
,但我无法始终如一地实现这一点。
您需要将 <your API token>
存储为 CI variable 以免泄漏。最好为此令牌使用 project access token。