Azure devops Azure DevOps仅在拉请求生成验证期间运行生成

Azure devops Azure DevOps仅在拉请求生成验证期间运行生成,azure-devops,azure-pipelines,pull-request,Azure Devops,Azure Pipelines,Pull Request,当开发完成时,我们有一个功能分支,我们希望在合并开发分支时执行拉请求。作为Pull请求的一部分,有构建验证。我为建筑要素分支创建了单独的建筑定义 由于我只知道该构建定义将构建哪些功能分支,所以我唯一的选择是在“启用持续集成”下使用“feature/*” 这种方法的问题是,在签入过程中会触发生成两次,在拉取请求过程中会触发另一次。我觉得这是一种时间和资源的方式。我更希望构建定义只在拉请求期间运行,并构建特性分支 如果我的配置方法不存在,请建议。从生成中删除CI触发器,而不是单击“代理作业1”,

当开发完成时,我们有一个功能分支,我们希望在合并开发分支时执行拉请求。作为Pull请求的一部分,有构建验证。我为建筑要素分支创建了单独的建筑定义

由于我只知道该构建定义将构建哪些功能分支,所以我唯一的选择是在“启用持续集成”下使用“feature/*”

这种方法的问题是,在签入过程中会触发生成两次,在拉取请求过程中会触发另一次。我觉得这是一种时间和资源的方式。我更希望构建定义只在拉请求期间运行,并构建特性分支


如果我的配置方法不存在,请建议。

从生成中删除CI触发器,而不是单击“代理作业1”,并在
附加选项中运行此作业
,选择
使用变量表达式的自定义条件
,然后输入以下内容:

startsWith(variables['System.PullRequest.SourceBranch'], 'refs/heads/feature')


现在,PR构建将自动触发,但只有当PR分支是功能分支而不是其他分支时,构建才会运行(如果另一个分支将创建PR以
开发
则不会自动构建,并且如果将手动排队此构建,则不会完成).

因此,在这种情况下,生成将同时为签入和拉入请求运行,但它仅会在来自拉入请求的情况下运行生成步骤。对于签入,生成不会运行,因为您应该取消CI触发器,生成将仅为PR运行。