2016-08-09 45 views
1

我们正在为我们的CI管道使用Go CD。我们创建了多个Go CD用户,他们都可以访问Go CD中的任何管道。转到CD触发器用户总是在多阶段管道中获得“更改”值

我们使用多个管道来完成dev-to-prod循环,但是,我们注意到我们可以通过使用具有多个阶段的单个管道(节省由多个管道引起的磁盘空间)来实现相同的目标,一个环境(即雄鹿,产品)。

我们的要求是获得由Go CD系统设置的GO_TRIGGER_USER,并根据这些信息在自定义脚本中做出一些决策。它适用于单阶段构建,即如果将更改推送到触发管道的存储库,则GO_TRIGGER_USER环境变量将获得'changes'的值,否则将其设置为手动触发管道的Go CD用户的用户名。

问题发生在多阶段构建上;从流水线的第二阶段开始,即使流水线由Go CD用户手动触发,始终将GO_TRIGGER_USER设置为“更改”。

任何想法或避免此行为的解决方法?

回答

0

两个选项:

  1. 使用API​​中的流水线Stages API获取关于第一阶段的数据。我从Python使用它,并不太繁重。
  2. 将您想要的元数据写入平面文件并将其导出为阶段之间的伪影。