从GO CD中的环境变量创建工件

时间:2015-07-15 12:43:42

标签: continuous-integration go-cd

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

说明

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

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

是否存在基于管道中定义的环境变量在模板中生成工件的方法?

1 个答案:

答案 0 :(得分: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试验和错误。