我们可以在gitlab-ci.yml中使用动态作业名称吗?

时间:2018-09-10 14:48:21

标签: variables dynamic continuous-integration gitlab jobs

我必须从jenkins迁移到gitlab,我希望能够使用动态作业名称,以便直接在管道摘要中获得一些信息,而不必单击每个作业等。...在jenkins中,我们可以立即看到传递给我们工作的参数,而gitlab-ci中不是这种情况。

我的测试跑步者在Windows上,尝试按以下方式定义yml:

job_%myParam%: stage: build script: - set>varList.txt artifacts: paths: - varList.txt

当我使用%myParam%=true开始我的工作时,该变量不会在工作名称中解释,因此它使用job_%myParam%的名称,而不是预期的“ job_true”。

那有可能吗?

thks:)

2 个答案:

答案 0 :(得分:4)

从gitlab 12.9开始,可以使用triggerchild pipelines来完成此操作-尽管有些涉及:

从gitlab文档中引用示例:

generate-config:
  stage: build
  script: generate-ci-config > generated-config.yml
  artifacts:
    paths:
      - generated-config.yml

child-pipeline:
  stage: test
  trigger:
    include:
      - artifact: generated-config.yml
        job: generate-config

在您的情况下,您将job_%myParam%的定义放在job.yml.in中,然后将脚本generate-ci-config设为 eg sed "s/%myParam%/$PARAM/g" job.yml.in。 / p>

仅更改名称可能会有点过多,而这将是附加阶段的成本;但它确实回答了这个问题,并且可能会做更多的事情,例如在同一管道中以不同版本的参数开头。

答案 1 :(得分:1)

否,GitLab CI中不能包含动态作业名称。