我们有一个专用的VCS根,用于检入检查分支的步骤(这是我们为主代码执行的一部分)。
我尝试过滤Bitbucket拉取请求分支和主分支,只在“真正的”分支上触发它,但它仍然会构建主要提交,这是一种浪费资源的行为。
我尝试了这个规范:
-:<default>
-:refs/pull-requests/*
+:*
根据我对规范语法的理解,这应该可以正常工作,但是TeamCity不同意。
我们有一个专用的VCS根,用于检入检查分支的步骤(这是我们为主代码执行的一部分)。
我尝试过滤Bitbucket拉取请求分支和主分支,只在“真正的”分支上触发它,但它仍然会构建主要提交,这是一种浪费资源的行为。
我尝试了这个规范:
-:<default>
-:refs/pull-requests/*
+:*
有三个地方可以定义分支。前两个(Default Branch和Branch Specification)在你的VCS Root中,使用Git规范格式(refs/heads/master
),并且定义要监视哪些引用进行更改[1]。
Team City需要一个默认分支来比较更改。这通常是master
,除非您有非标准配置。在分支规范中,您需要定义任何其他引用以监视更改。对于在分支规范中定义的引用的任何更改都会挂钩到TeamCity以进行处理。
您的场景下的VCS Root设置:
/refs/heads/master
+:*
版本控制设置是真正发生魔法的地方。在这些设置中,仅将定义的分支提供给构建。此部分使用逻辑名称来定义要包含的分支。您可能需要单击“显示高级设置”以查看分支筛选器[2]。
您可以通过单击分支筛选器旁边的向导来测试所有内容是否正常工作。单击小魔棒图标,您应该会看到VCS Root正在监视的所有分支。它应该包括您的Git存储库中当前的任何其他分支。如果这样更容易,您可以使用向导构建您的筛选器。
对于您的场景,您应该监视所有内容(+:*
),排除主分支(-:<default>
)和您想要忽略的任何其他分支(-:pull-requests/*
)。它应该长这样:
+:*
-:<default>
-:pull-requests/*