Azure DevOps 中是否有一个变量来检查构建是否来自门控签入?
Is there a variable in Azure DevOps to check if build is from gated check in?
我在 Azure DevOps 中有两个构建定义,一个用于门控签入,一个用于持续集成到发布中。我想对 运行 我们的 GCI 和我们的 CI 构建使用一个构建定义,这样我就不必维护两个具有类似设置、拆卸等的独立构建定义
当构建排队时,我可以在 Azure DevOps 中检查一个变量来区分构建是否由 GCI 的 PR 触发?如果有更好的方法大家听听。
是的!有一个变量 Build.Reason
:
个人CI:持续集成(CI)由Git推送或TFVCcheck-in触发。
BatchedCI: 由 Git 推送或 TFVC check-in 触发的持续集成 (CI),以及已选择批量更改。
CheckInShelveset: 门控 check-in 触发器。
所以你可以在构建任务中添加一个条件到 运行 only of the build is GCI/CI,例如(运行 only if the build is CI ):
and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'))
我想你可以使用名为 Build.Reason.
的预定义变量
将其添加到构建编号格式,然后每当您触发构建时,您可以直接在构建#中看到是什么触发了它。
比如你的Build号格式是$(date:yyyyMMdd)$(Build.Reason),那么你的build#会显示20190523PullRequest或者其他符合变量定义的格式。
希望对你有所帮助,祝你有个愉快的一天。
我在 Azure DevOps 中有两个构建定义,一个用于门控签入,一个用于持续集成到发布中。我想对 运行 我们的 GCI 和我们的 CI 构建使用一个构建定义,这样我就不必维护两个具有类似设置、拆卸等的独立构建定义
当构建排队时,我可以在 Azure DevOps 中检查一个变量来区分构建是否由 GCI 的 PR 触发?如果有更好的方法大家听听。
是的!有一个变量 Build.Reason
:
个人CI:持续集成(CI)由Git推送或TFVCcheck-in触发。
BatchedCI: 由 Git 推送或 TFVC check-in 触发的持续集成 (CI),以及已选择批量更改。
CheckInShelveset: 门控 check-in 触发器。
所以你可以在构建任务中添加一个条件到 运行 only of the build is GCI/CI,例如(运行 only if the build is CI ):
and(succeeded(), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI'))
我想你可以使用名为 Build.Reason.
的预定义变量将其添加到构建编号格式,然后每当您触发构建时,您可以直接在构建#中看到是什么触发了它。
比如你的Build号格式是$(date:yyyyMMdd)$(Build.Reason),那么你的build#会显示20190523PullRequest或者其他符合变量定义的格式。
希望对你有所帮助,祝你有个愉快的一天。