我们将 Go CD 用于我们的 CI 管道。我们创建了多个 Go CD 用户,他们都有权触发 Go CD 中的任何管道。
我们使用多个管道来完成从开发到产品的周期,但是,我们注意到我们可以通过使用具有多个阶段的单个管道来实现相同的效果(节省由多个管道引起的磁盘空间),每个阶段都表示部署到一个环境(即雄鹿,刺激)。
我们的要求是获取由 Go CD 系统设置的 GO_TRIGGER_USER,并基于此信息在自定义脚本中进行一些决策。它非常适合单阶段构建,即如果将更改推送到触发管道的存储库,GO_TRIGGER_USER 环境变量将获取“更改”的值,否则将其设置为手动触发管道的 Go CD 用户的用户名。
多阶段构建出现问题;从管道的第二阶段开始,即使管道是由 Go CD 用户手动触发的,它也总是将 GO_TRIGGER_USER 设置为“更改”。
有什么想法或解决方法可以避免这种行为吗?