我有一个 repo,它有两个分支:
众所周知,develop 分支中的代码可作为“alpha”版本发布,而 master 中的代码已知可用于生产。
目前,开发分支的策略要求必须成功完成 CI 构建才能合并 PR。该构建将创建带有预发布标记 (alpha-####) 的 NuGet 包工件。
发布管道负责获取这些包并将它们发布到内部 NuGet 源。
我想要实现的是让发布管道自动触发 PR完成后 ,而不是每当 CI 构建成功时。
我希望“拉取请求触发器”能做到这一点,但令我惊讶的是,触发器不会确认 PR 的状态,并且在 CI 构建完成后立即启动发布管道。
这意味着如果 PR 因任何原因被拒绝,NuGet 仍可能部署到我的提要!
我在这里做错了什么?为什么拉取请求触发器与持续部署触发器的工作方式没有任何不同?那它的目的是什么? :/
最佳答案
持续部署触发器意味着,如果您在发布管道中指定某些类型的工件,则可以启用持续部署。这会指示 Azure Pipeline 在检测到新工件可用时自动创建新版本。
拉取请求触发器意味着,一旦配置了拉取请求发布,无论何时为 protected 分支提出拉取请求,都会自动触发发布,并将其部署到指定的环境。
所以这两个触发器是不同的,更详细的信息你可以引用这里。
https://docs.microsoft.com/en-us/azure/devops/pipelines/release/deploy-pull-request-builds?view=azure-devops
https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops
如果您在 PR 完成后仍想部署 Nuget,我建议您创建一个新的构建管道并为其启用持续集成。然后将此构建管道设置为发布管道工件。
因为当一个 PR 完成时,它会创建一个新的提交到目标分支,这个新提交将触发构建管道,构建管道将触发发布管道以按预期部署 Nuget。
关于azure-devops - Azure DevOps : how to trigger a release upon pull request being completed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58089501/