Continuous integration Go CD触发器用户始终获取值';变化';在多级管道中

Continuous integration Go CD触发器用户始终获取值';变化';在多级管道中,continuous-integration,continuous-deployment,go-cd,Continuous Integration,Continuous Deployment,Go Cd,我们正在为CI管道使用Go CD。我们已经创建了多个Go CD用户,他们都有权触发Go CD中的任何管道 我们使用多个管道来完成从开发到生产的循环,但是,我们注意到,我们可以通过使用具有多个阶段的单个管道来实现相同的目标(多个管道节省了磁盘空间),每个阶段都表示部署到一个环境(即stag、prod) 我们的需求是获得GO_TRIGGER_用户,由GO CD系统设置,并基于此信息在自定义脚本中进行一些决策。它对于单阶段构建非常有效,即,如果将更改推送到存储库触发管道,GO_TRIGGER_用户环境

我们正在为CI管道使用Go CD。我们已经创建了多个Go CD用户,他们都有权触发Go CD中的任何管道

我们使用多个管道来完成从开发到生产的循环,但是,我们注意到,我们可以通过使用具有多个阶段的单个管道来实现相同的目标(多个管道节省了磁盘空间),每个阶段都表示部署到一个环境(即stag、prod)

我们的需求是获得GO_TRIGGER_用户,由GO CD系统设置,并基于此信息在自定义脚本中进行一些决策。它对于单阶段构建非常有效,即,如果将更改推送到存储库触发管道,GO_TRIGGER_用户环境变量将获取“changes”的值,否则将其设置为手动触发管道的GO CD用户的用户名

问题发生在多阶段构建上;从管道中的第二阶段开始,始终将GO_TRIGGER_USER设置为“changes”,即使管道是由GO CD用户手动触发的

有没有办法避免这种行为?

有两种选择:

  • 使用API获取关于管道中第一阶段的数据。我从Python中使用它,它不太繁重
  • 将您想要的元数据写入平面文件,并在两个阶段之间作为人工制品导出
  • 两种选择:

  • 使用API获取关于管道中第一阶段的数据。我从Python中使用它,它不太繁重
  • 将您想要的元数据写入平面文件,并在两个阶段之间作为人工制品导出