【发布时间】:2019-01-30 08:51:37
【问题描述】:
我正在尝试为我们的项目配置 Azure DevOps 发布管道,并且我非常清楚我想要实现的目标,但我只是几乎一直到那里。
这是我想要的:
- 每个项目的构建管道都会输出(作为工件)将该版本部署到任何环境所需的所有内容。
- 发布管道会在每次成功构建(包括 PR 构建)时自动部署到第一个环境(在我们的例子中为“dev”)。
- 对于每个后续环境,版本必须已成功部署到所有以前的环境。换句话说,为了部署到第二个环境(“st”),它必须已经部署到第一个(“dev”),并且为了部署到第三个(“at”),它必须已经成功部署到所有以前的(“dev”和“st”)等。
- 所有环境都可以对必须从哪些分支构建可部署工件有特定要求;例如只有从
master构建的工件才能部署到“at”和“prod”。 - 在第一次部署之后,每次连续部署到任何环境都是由批准者列表中的某个人手动触发的。审批者列表因环境而异。
我发现让上述所有工作同时工作的唯一方法是在成功部署后自动触发下一个环境,并添加一个带有手动批准步骤的预部署门。这可行,除了手动批准不会触发部署本身,而是让已经触发的部署开始执行。这意味着, 未获准提升到下一个环境的任何版本都会挂起,直到手动解除。
我可以通过手动触发而不是自动触发来避免这种情况,但是我无法强制执行从一个环境到下一个环境的流程(例如,可以部署到“prod”而不等待成功部署到前一阶段)。
有没有什么方法可以配置 Azure DevOps Release Pipelines 来一次性完成我上面列出的所有事情?
【问题讨论】:
-
将部署前手动审批门更改为部署后会有所帮助吗?我想这可能会稍微改变逻辑,而不是让下一个阶段无所事事,而是“挂起”当前阶段。
标签: azure-devops