Bitbucket Pipelines:PR开启后提交触发双流水线问题咨询
Bitbucket Pipelines 分支提交与PR触发重复流水线问题
我的配置如下:
pipelines: pull-requests: 'projectname-*': - step: name: PR script: - Do some things branches: 'projectname-*': - step: name: Feature dev script: - Do some other things
按照Bitbucket官方文档说明,pull-requests定义的流水线仅在创建PR时运行,但实际打开匹配projectname-*的PR后,后续向该分支提交代码会同时触发两条流水线。这是配置有误还是Bitbucket的问题?
这既不是配置错误,也不是Bitbucket的问题,是官方文档的描述容易造成误解。
实际触发逻辑是:当PR处于打开状态时,向其源分支提交代码会同时满足两个触发条件:
- 分支提交触发:提交的分支匹配
branches字段下的projectname-*规则,触发分支流水线 - PR更新触发:该分支关联了符合
pull-requests字段下projectname-*规则的PR(这里的规则匹配的是PR的源分支),此时PR发生更新,会触发PR流水线
这种双流水线触发是Bitbucket的预期行为。如果要避免重复触发,可通过以下方式调整配置:
方案1:给分支流水线添加排除条件
利用Bitbucket提供的BITBUCKET_PR_ID环境变量,当该变量存在时(说明当前分支关联了PR),跳过分支流水线:
pipelines: pull-requests: 'projectname-*': - step: name: PR script: - Do some things branches: 'projectname-*': - step: name: Feature dev condition: $BITBUCKET_PR_ID is empty script: - Do some other things
方案2:调整触发规则
根据实际需求取舍:比如只保留PR流水线,或者让分支流水线仅在PR合并后触发(若适用)。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

