gpt4 book ai didi

Azure DevOps - 管道不应触发 PR 构建

转载 作者:行者123 更新时间:2023-12-02 22:58:39 24 4
gpt4 key购买 nike

我有一个用于 Git 存储库的 Azure DevOps Pipeline。我目前有一个脚本来验证 Azure Pipeline 中的 PR 评论。

当代码合并到主分支时,我想触发构建。我不确定如何使用 Azure DevOps 管道实现这一目标。

#Trigger for Development
trigger:
branches:
include:
- development
- master
#Trigger checks for PR
pr:
branches:
include:
- development
- master
- feature
- main
paths:
exclude:
- README/*

最佳答案

When the code is merged into the main branch I wanted to trigger build

如果您想在代码合并到主分支后验证注释,我们需要在 PR 完成后触发构建,而不是在 PR 创建时触发构建。

所以,PR triggers在这种情况下无法满足我们的要求。

要解决此问题,我们可以为脚本任务使用**条件** eq(variables['Commitcomment'], 'Merge pull request') 为主分支启用 CI 触发器验证 PR 评论。

有了这个条件,只有当CommitcommentMerge pull request时,管道才会执行作业,这样可以过滤掉PR未完成的修改。

要获取变量 Commitcomment 的值,我们可以通过变量 Build.SourceVersionMessage 检查 github 上的提交消息:

enter image description here

如果提交来自 PR,它会给出默认注释,开头为:Merge pull request xxx,我们可以添加 bash\powershell 脚本来获取前几个字段。

然后使用 Logging Command如果前几个字段是合并拉取请求,则将变量Commitcomment设置为true:

  - task: CmdLine@2
displayName: get the first few fields
inputs:
script: >-
echo $(Build.SourceVersionMessage)
set TempVar=$(Build.SourceVersionMessage)
set Commitcomment=%TempVar:~0,18%
echo %Commitcomment%
echo ##vso[task.setvariable variable=Commitcomment]%Commitcomment%

引用链接:Is there a short 7-digit version of $(SourceVersion) in Azure Devops?

然后将此变量添加为任务的条件 condition: and(succeeded(), eq(variables['Commitcomment'], 'Merge pull request')) 以验证 PR 评论:

  - task: CmdLine@2
displayName: script to validate the PR comments
condition: and(succeeded(), eq(variables['Commitcomment'], 'Merge pull request'))
inputs:
script: >
echo To validate the PR comments

在这种情况下,如果提交不是来自 PR,则会跳过 PR 评论验证任务:

enter image description here

关于Azure DevOps - 管道不应触发 PR 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65209057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com