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

Bitbucket Pipeline阶段中如何为步骤设置触发器?

Bitbucket Pipeline多环境部署手动触发器配置方案

错误原因

Bitbucket Pipeline的stages语法规则明确:stage内的step不能单独设置手动触发器,必须把trigger: manual定义在stage层级,这就是你收到报错的核心原因。

正确配置方式

先调整可复用步骤的锚点定义(移除原step内的trigger配置),再在stage层级设置手动触发器并引用锚点步骤即可,注意YAML缩进必须严格对齐:

# 定义可复用的生产环境部署步骤锚点
- step: &deployment-prod
    name: Deploy
    script:
      - echo "production deployment script"

# 多环境部署的完整流水线配置
pipelines:
  default:
    # 前置构建、测试stage(示例)
    - stage:
        name: Build & Test
        steps:
          - step:
              name: Build
              script:
                - echo "build script"
          - step:
              name: Test
              script:
                - echo "test script"
    # 生产环境部署stage(手动触发)
    - stage:
        name: Deploy to Production
        deployment: Production
        trigger: manual  # 手动触发器放在stage层级
        steps:
          - step: *deployment-prod  # 直接引用锚点步骤

你之前写法的问题

  1. 缩进错误:steps应该和deployment、name同级,你之前的写法缩进过多,属于语法错误
  2. 触发器位置错误:把trigger: manual写在step内部,违反了stages的语法规则
  3. 锚点引用冗余:直接用*deployment-prod即可引用整个step配置,不需要额外写<<:

扩展:多环境差异化配置

如果需要不同环境用不同触发方式(比如开发环境自动触发、生产环境手动触发),可以给每个stage单独配置trigger:

pipelines:
  default:
    - stage:
        name: Deploy to Development
        deployment: Development
        trigger: automatic  # 开发环境自动触发
        steps:
          - step:
              name: Deploy Dev
              script:
                - echo "development deployment script"
    - stage:
        name: Deploy to Production
        deployment: Production
        trigger: manual  # 生产环境手动触发
        steps:
          - step: *deployment-prod

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 16:23:17