1

在 GO 中使用模板系统,我需要从管道中定义的可变数量的环境变量创建工件。

解释

我有一个用于构建和部署存储库的模板。我需要在模板中创建一些工件以用于另一个具有获取工件机制的管道http://www.go.cd/documentation/user/current/configuration/managing_dependencies.html#fetching-artifacts-from-an-upstream -管道

但是存储库可以在存储库树下的不同位置生成可变数量的包。


有没有办法根据管道中定义的环境变量在模板中生成工件?

4

1 回答 1

0

有没有办法根据管道中定义的环境变量在模板中生成工件?

对于固定数量的工件,是的。您可以将工件的坐标作为参数(不是环境!)传递给模板,并使用模板中的参数。XML 涂鸦:

<pipeline name="foo" template="templatename" ...>
  <params>
    <param name="upstream-pipeline">my-pipeline</param>
    <param name="upstream-stage">my-stage</param>
    <param name="upstream-job">my-job</param>
    <param name="upstream-artifacto-directory">my-directory</param>
  </params>
  ...
</pipeline>

然后模板将执行类似的操作

<tasks>
  <fetchartifact artifactOrigin="gocd" srcdir="#{upstream-artifact-directory}" pipeline="#{upstream-pipeline}" stage="#{upstream-stage}" job="#{upstream-job}">
  ...

在某种程度上,普通模板向导前端不允许创建带有变量的模板。我不得不切换到直接编辑 config.xml。

我建议从工作管道开始,然后将其转换为模板以减少 XML 试错。

于 2020-02-27T22:09:59.510 回答