如何在GITLAB CI中存储不同作业的结果?

时间:2019-07-19 10:42:31

标签: gitlab gitlab-ci gitlab-ci-runner

我在管道中定义了三个作业。在三个不同的跑步者上运行三个作业。最后,我需要每个工作的工作URL。因此,我将在每个作业中使用$ {CI_JOB_URL}环境变量。但是我需要的是在所有工作结束后我应该能够记住所有这三个值。

我不能使用YAML的变量。因为那些是一成不变的。我也无法在工作中定义环境变量,因为一旦完成工作,环境变量将被清除。我需要的是某种收集,一旦作业结束,它就会添加每个作业的URL。

这可能吗?

我还阅读了有关缓存,工件和分布式缓存的信息。在尝试所有这些之前,我只是想知道是否还有其他解决方法。因为仅利用缓存/工件来记住3个字符串,使该过程有些复杂。

job1:
    tags:
         windows
    script:
          #do something.
          #Get job URL
job2
    tags:
         linux
    script:
          #do something.
          #Get job URL
job3
    tags:
         macOS
    script:
          #do something.
          #Get job URL
job4
    script:
          #Finally get all my JOB urls in a collection or some variables

1 个答案:

答案 0 :(得分:0)

您可以使用GitLab作业API获取管道作业列表。

获取/ projects /:id / pipelines /:pipeline_id / jobs

您可以使用scope参数来获取特定状态的作业:创建,挂起,运行,失败,成功,取消,跳过或手动。如果未提供范围,则返回所有作业。

示例:

curl --header "PRIVATE-TOKEN: <your_access_token>" \
'https://gitlab.example.com/api/v4/projects/$CI_PROJECT_ID/pipelines/$CI_PIPELINE_ID/jobs?scope[]=success'