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

jhf*_*ntz 13 logging gitlab gitlab-ci

我有一些 gitlab CI管道,其中包含数十个作业 - 有时我需要找到可能出现在作业中的内容,但不知道是哪个作业。我可以在 Web 界面中手动选择每个作业并查看关联的日志,但为每个作业执行此操作是不可行的。

有没有某种方法(最好是作为非特权 gitlab 用户)来检索/聚合给定管道的所有作业的输出?

如果重要的话,我使用的是 12.5.X-ee 版本。

Rek*_*vni 11

您可以使用GitLab Jobs API来聚合所有作业跟踪,并编写一个包含以下内容的脚本:

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

请注意,您需要创建一个个人访问令牌,然后在 CI 作业中使用它来访问 API。除了将访问令牌存储为自定义环境变量,然后在.gitlab-ci.yml.

华泰