【发布时间】:2021-10-20 04:32:34
【问题描述】:
我有一个 .gitlab-ci.yml 管道,它有一个需要在多个环境中运行的简单作业。类似于以下内容:
test:v1.0:
stage: test
environment:
name: v1.0
tags:
- v1.0
script:
- ./run.sh $VERSION
test:v2.0:
stage: test
environment:
name: v2.0
tags:
- v2.0
script:
- ./run.sh $VERSION
test:v2.5:
stage: test
environment:
name: v2.5
tags:
- v2.5
script:
- ./run.sh $VERSION
GitLab 是否有任何机制通过迭代数组来创建作业?类似于Ansible's loops 的东西。这个想法是避免在只有环境或运行器标签更改时一遍又一遍地复制粘贴相同的作业。我在文档中看不到任何内容,有关此主题的所有功能请求似乎都已关闭。是否有任何解决方法可以实现相同的行为并被社区接受为最佳实践?
我从这里的其他问题中知道,一种建议的解决方案可能是:
test:all:
stage: test
script:
- Iterate here with v1.0, v2.0, v2.5, etc
这种方法的问题是只创建了一个作业,而且你失去了从 GitLab 环境功能中选择跑步者和其他功能的能力,所以我宁愿避免这个。
【问题讨论】: