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

Bitbucket Pipelines并行子步骤未执行问题咨询

问题原因

你当前的流水线配置存在语法错误:Bitbucket Pipelines 中parallel是顶级流水线节点,不能嵌套在单个step内部。你把parallel放在了Second Step的属性里,这种写法不被系统解析,导致并行子步骤完全不会触发执行。

修正方案

根据你「先完成环境初始化,再并行执行子任务」的需求,提供两种可行的修正方式:

方式一:每个并行子步骤独立完成准备操作

如果每个并行任务都需要执行目录切换和依赖安装,可以把这些命令移到每个并行子步骤的脚本中:

image: python:3.9.16-alpine

pipelines:
  default:
    - step:
        runs-on:
          - self.hosted
          - regressiontests
        name: First Step
        clone:
          enabled: false
        caches:
          - pip
        script:
          - apk add git
          - apk add openssh-client
          - git clone myrepository.git
          - pip install -r myrepository/requirements.txt
          - echo $ENV_FILE | base64 -d -i > myrepository/.env
        artifacts:
          - myrepository/**
    # 直接使用顶级parallel块,包含所有子步骤
    - parallel:
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.1
            clone:
              enabled: false
            caches:
              - pip
            script:
              - cd myrepository
              - pip install -r requirements.txt
              - python fancy command 1
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.2
            clone:
              enabled: false
            caches:
              - pip
            script:
              - cd myrepository
              - pip install -r requirements.txt
              - python fancy command 2
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.3
            clone:
              enabled: false
            caches:
              - pip
            script:
              - cd myrepository
              - pip install -r requirements.txt
              - python fancy command 3
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.4
            clone:
              enabled: false
            caches:
              - pip
            script:
              - cd myrepository
              - pip install -r requirements.txt
              - python fancy command 4

方式二:先统一执行准备步骤,再并行运行任务

如果希望只执行一次目录切换和依赖安装,再并行后续命令,可以把准备步骤拆成独立step,通过 artifacts 传递环境后启动并行任务:

image: python:3.9.16-alpine

pipelines:
  default:
    - step:
        runs-on:
          - self.hosted
          - regressiontests
        name: First Step
        clone:
          enabled: false
        caches:
          - pip
        script:
          - apk add git
          - apk add openssh-client
          - git clone myrepository.git
          - pip install -r myrepository/requirements.txt
          - echo $ENV_FILE | base64 -d -i > myrepository/.env
        artifacts:
          - myrepository/**
    - step:
        runs-on:
          - self.hosted
          - regressiontests
        name: Pre-Parallel Setup
        clone:
          enabled: false
        caches:
          - pip
        script:
          - cd myrepository
          - pip install -r requirements.txt
        # 传递准备好的目录给并行步骤
        artifacts:
          - myrepository/**
    - parallel:
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.1
            clone:
              enabled: false
            script:
              - cd myrepository
              - python fancy command 1
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.2
            clone:
              enabled: false
            script:
              - cd myrepository
              - python fancy command 2
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.3
            clone:
              enabled: false
            script:
              - cd myrepository
              - python fancy command 3
        - step:
            runs-on:
              - self.hosted
              - regressiontests
            name: Step 2.4
            clone:
              enabled: false
            script:
              - cd myrepository
              - python fancy command 4
关键注意事项
  • 所有步骤保持clone: false,避免重复克隆代码
  • 利用artifacts在步骤间传递myrepository目录,确保环境一致性
  • 所有步骤指定相同的runs-on标签,保证在符合要求的自托管 runner 上执行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 06:12:10