首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在GO-CD中将GO_REVISION从上游管道传递到下游管道?

如何在GO-CD中将GO_REVISION从上游管道传递到下游管道?
EN

Stack Overflow用户
提问于 2017-01-13 16:42:03
回答 2查看 983关注 0票数 1

如何将GO_REVISION从上游管道传递到下游管道?

我有四个管道,A,B和C管道由相同的git和他们的GO_REVISION版本标签构建的应用程序触发器。

用于部署的管道D,其材料为A、B和C。

但是,我不知道如何将上游管道(A/B/C)的GO_REVISION共享到D。

代码语言:javascript
复制
              +--->Pipeline A +
              |               |
GIT (Material)+--->Pipeline B +------>Pipeline D (How get upstream GO_REVISION)
              |               |
              +--->Pipeline C +
EN

回答 2

Stack Overflow用户

发布于 2017-02-03 02:05:03

那得看情况。如果您对存储库有任何用例,您应该将GIT ( material )作为Pipeline-D的依赖材料。

否则,您可以将GO_REVISION设置为任何上游管道的标签(让我们为管道A设置),并访问应包含GO_REVISION的管道D中的环境变量${GO_DEPENDENCY_LABEL_A}。Image : Setting Pipeline-A label to hold GO_REVISION

在上图中,将标签从${material_name}更改为${material_name:6}应该只包含来自SHA的前6个字母。

Image : Accessing GO_REVISION in Pipeline D

通常,如果您希望使用修订来表示构建,则会使用这种方法。

另一种方法是将其写入其中一个上游管道中的文件,并在下游管道中获取它。

票数 0
EN

Stack Overflow用户

发布于 2017-02-04 20:56:49

考虑将A、B和C放入单个管道中。

ABC可以作为任务并行运行。我为什么这么说--因为这将确保ABC总是建立在相同的Git提交之上。如果ABC是单独的管道,则有可能出现竞争条件(例如,等待代理、构建失败等)。如果ABC在不同版本的源代码上,GoCD将标记一个警告。但简单是最好的。

这样一来,通过pipline标签就可以很直接地修改到D。

然而。我总是将版本信息写入到平面文件中构建的工件中。额外的元数据使得在生产端保证代码的审计能力成为可能。您还应该将版本信息注入到应用程序用户界面(如果有)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41630472

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档