我如何收集gitlab管道中所有作业的日志?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我如何收集gitlab管道中所有作业的日志?相关的知识,希望对你有一定的参考价值。

我有一些包含几十个工作的gitlab CI pipelines-有时我需要找到可能会出现在工作中的something,而不知道是哪个。我可以在Web界面中手动选择每个作业并查看关联的日志,但是对每个作业都无法做到。

是否有某种方法(理想情况下是无特权的gitlab用户)从给定管道的所有作业中检索/汇总输出?

如果有问题,我使用的是12.5.X-ee版本。

答案

您可以使用GitLab Jobs API汇总所有作业跟踪,并编写包含以下内容的脚本:

  • 向管道添加最后阶段(aggregate job logs
  • 列出当前Pipeline ID jobs
  • 循环遍历JOB_ID(aggregate job logs作业除外,并获得其job logs
  • 转储到文件中,您可以查看一个文件中的所有日志

注意,您需要创建一个personal-access-token,然后在CI作业中使用它来访问API。除了将访问令牌存储为custom environment variable之外,然后在.gitlab-ci.yml中访问该变量,这不是一个好方法。

HTH

以上是关于我如何收集gitlab管道中所有作业的日志?的主要内容,如果未能解决你的问题,请参考以下文章

.gitlab-ci.yml配置参数

如何在 gitlab 中触发特定作业

如何在 Gitlab 中基于管道变量运行作业?

如何让 Gitlab CI 管道始终运行一些作业,而其他作业仅在合并请求上运行?

如何为作业禁用 GitLab 构建缓存

如何在 Jenkins 作业中获取 MR 的所有 GitLab 评论