lep*_*eil 7 variables jobs continuous-integration dynamic gitlab
我必须从 jenkins 迁移到 gitlab,我希望能够使用动态作业名称,以便在管道摘要中直接获得一些信息,而无需单击每个作业等......在 jenkins 中,我们可以立即看到参数传递给我们的工作,这在 gitlab-ci 中不是这种情况。
我的测试运行器在 Windows 上,我尝试按如下方式定义 yml:
job_%myParam%:
stage: build
script:
- set>varList.txt
artifacts:
paths:
- varList.txt
Run Code Online (Sandbox Code Playgroud)
当我用 开始我的工作时%myParam%=true,该变量不会在工作名称中解释,因此它采用 job_%myParam% 的名称而不是预期的“job_true”。
这甚至可能吗?
谢谢:)
现在可以通过Gitlab 15.11 中添加的作业输入参数来实现这一点
\njob_fourtytwo为了达到您想要的结果 \xe2\x80\x93 例如,让您的作业在特定运行中动态命名:
像这样定义你的工作:
\n# jobs/dump_env.yaml\n\n"job_$[[ inputs.myParam ]]":\n stage: build\n script:\n - set>varList.txt\n artifacts:\n paths:\n - varList.txt\nRun Code Online (Sandbox Code Playgroud)\nmyParam包含作业时设置:
# e.g. ./.gitlab-ci.yml\n\ninclude:\n- local: jobs/dump_env.yml\n inputs:\n myParam: fourtytwo\nRun Code Online (Sandbox Code Playgroud)\n您还可以为输入定义描述和默认值,如果包含中未提供输入,则将假定该描述和默认值:
\n# jobs/dump_env.yaml\n\nspec:\n inputs:\n myParam:\n description: My awesome custom job prefix\n default: fourtytwo\n---\n"job_$[[ inputs.myParam ]]":\n# \xe2\x80\xa6\nRun Code Online (Sandbox Code Playgroud)\n请参阅定义可包含的 CI/CD 配置文件的输入参数博客文章或上面链接的 gitlab 文档参考以获取更多示例。
\n小智 6
从 gitlab 12.9 开始,这可以使用trigger和子管道来完成——尽管有点涉及:
引用 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
Run Code Online (Sandbox Code Playgroud)
在您的情况下,您将定义job_%myParam%in job.yml.in,然后将脚本设置generate-ci-config为eg sed "s/%myParam%/$PARAM/g" job.yml.in。
这当然只是更改名称可能有点多,而且它们将是与附加阶段相关的成本;但它确实回答了这个问题,并且可能有助于做更多事情,比如在同一管道中从不同版本的参数开始。
| 归档时间: |
|
| 查看次数: |
5316 次 |
| 最近记录: |