You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bitbucket Pipelines中如何指定并行步骤执行优先级以缩短耗时?

解决Bitbucket Pipelines并行步骤的Runner分配问题

Bitbucket Pipelines的并行步骤默认是每个独立step占用一个runner,你原来的配置会让三个step依次抢占仅有的2个runner,没法保证phpstan单独占用一个runner。要实现你的需求,核心思路是把耗时较短的phpunit和parallel-lint合并成一个step,让并行任务总数变成2个,刚好匹配你的runner数量,这样就能确保phpstan单独在一个runner执行,另外两个在另一个runner串行执行,总耗时等于phpstan的执行时间(因为它的耗时刚好是另外两个的总和)。

修改后的配置示例

假设你原本的锚点定义如下:

.definitions:
  steps:
    phpunit: &phpunit
      image: php:8.2
      caches:
        - composer
      script:
        - phpunit --configuration phpunit.xml
    phpstan: &phpstan
      image: php:8.2
      caches:
        - composer
      script:
        - phpstan analyze --level=max src/
    parallel-lint: &parallel-lint
      image: php:8.2
      caches:
        - composer
      script:
        - parallel-lint --exclude vendor/ src/

调整并行步骤部分,将两个短步骤合并:

- parallel:
    - step: *phpstan
    - step:
        name: PHPUnit + Parallel Lint
        image: php:8.2
        caches:
          - composer
        script:
          - phpunit --configuration phpunit.xml
          - parallel-lint --exclude vendor/ src/

关键说明

  • 合并后的step会串行执行phpunit和parallel-lint,总耗时和phpstan基本一致,刚好填满另一个runner的时间
  • 要确保合并后的step和原步骤使用相同的环境配置(比如镜像、缓存、环境变量等),避免执行出错
  • 如果后续runner数量增加,你可以再拆分回独立的并行步骤

内容的提问来源于stack exchange,提问作者Luka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 13:33:16