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

Bitbucket中如何取消等待manual trigger的pipeline及清理记录

Bitbucket Pipelines 暂停状态流水线相关问题解答

你使用的官方默认starter流水线配置如下:

# This is an example Starter pipeline configuration
# Use a skeleton to build, test and deploy using manual and parallel steps
# -----
# You can specify a custom docker image from Docker Hub as your build environment.

image: atlassian/default-image:3

pipelines:
  default:
    - parallel:
      - step:
          name: 'Build and Test'
          script:
            - echo "Your build and test goes here..."
      - step:
          name: 'Lint'
          script:
            - echo "Your linting goes here..."
      - step:
          name: 'Security scan'
          script:
            - echo "Your security scan goes here..."

    - step:
        name: 'Deployment to Staging'
        deployment: staging
        script:
          - echo "Your deployment to staging script goes here..."
    - step:
        name: 'Deployment to Production'
        deployment: production
        trigger: 'manual'
        script:
          - echo "Your deployment to production script goes here..."

卡在手动步骤时查询到的状态字段:

"state": {
    "name": "IN_PROGRESS",
    "type": "pipeline_state_in_progress",
    "stage": {
      "name": "PAUSED",
      "type": "pipeline_state_in_progress_paused"
    }
  },

针对你提的三个问题,解答如下:

1. 如何直接取消等待手动触发的pipeline

  • UI操作不要在流水线列表页找取消按钮,列表页不会对暂停状态的流水线显示取消入口。点进对应流水线的详情页,定位到那个等待手动触发的生产部署步骤卡片,点卡片右上角的三点更多菜单,里面的Stop pipeline选项就可以直接终止整条流水线,终止后流水线会进入终态,不再显示为进行中。
  • 嫌找UI入口麻烦可以直接调API:给对应流水线地址发POST请求调用停止接口,路径为/2.0/repositories/{工作区标识}/{仓库标识}/pipelines/{流水线ID}/stopPipeline,用有仓库写权限的账号Token鉴权就行,调用后几秒内流水线就会被终止。

你之前试的重跑再停止没用,重跑会生成新的流水线实例,原来卡在暂停状态的旧实例不会被自动替换或终止。

2. 是否支持配置pipeline运行达到指定时长后自动取消

  • Bitbucket默认有单步执行超时机制,普通步骤最长跑120分钟、大内存步骤最长180分钟,超时会自动失败终止整条流水线,但这个超时规则不覆盖等待手动触发的暂停步骤,暂停状态不会计算执行时长,放多久都不会自动触发超时终止。
  • 目前没有原生配置项可以给手动步骤的等待时长设置超时自动取消,要实现这个效果只能自己挂外部定时任务:定时拉取流水线列表,筛选出处于PAUSED阶段、暂停时长超过你设定阈值的实例,批量调用上面说的停止接口终止就行。
  • 从源头减少这类无效暂停实例的话,可以调整流水线配置,不要给所有默认分支的提交都加上手动生产部署步骤,比如加规则只有打版本tag、或者指定分支提交时才加载生产部署步骤。

3. 是否有方法彻底删除、清理这类处于暂停状态的pipeline运行记录

  • 暂停状态的流水线不能直接删除,必须先按第一个问题的方法把它终止,等状态变成STOPPED/FAILED/SUCCESS这类终态之后,才能操作删除。
  • 单条记录删除可以进流水线详情页,点右上角三点菜单选Delete,也可以直接调DELETE接口,路径为/2.0/repositories/{工作区标识}/{仓库标识}/pipelines/{流水线ID}。
  • 批量清理就写个简单脚本跑:先拉取所有状态为IN_PROGRESS、stage为PAUSED的流水线,先逐个调停止接口,等半分钟确认所有实例都进入终态后,再逐个调删除接口就行。删掉的记录不会再出现在状态筛选结果里,不会影响你后续筛选进行中流水线的操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 17:33:39