Lesstep
Bitbucket Cloud・Pipelines・2026年10月31日に確認

Bitbucket Pipelines:新しい push で古いパイプラインを止める

ブランチやプルリクエストに2回 push すると、Bitbucket は2つのパイプラインを最後まで動かします。もう要らないほうのコミットにもビルド時間を使います。古いほうを止める設定は Bitbucket にありません。手で止めるか、Atlassian のサポートが勧めるように、新しいパイプラインから API で止めます。

自動のキャンセルは無い

Atlassian のサポートはコミュニティで「自動でそうする方法はありません」(2023年2月)、プルリクエストについても、動いているパイプラインを自動でキャンセルする仕組みは無い(2024年12月)と答えています。機能の要望は2つあり、どちらも Gathering Interest です:

atlassian/trigger-pipeline のパイプで始めたパイプラインも、始めた側を止めても止まりません(BCLOUD-23527)。

パイプラインを止める

Bitbucket では、動いているパイプラインのページから止めます。REST API では Stop a pipeline:

curl -X POST -u '<メールアドレス>:<API トークン>' \
  https://api.bitbucket.org/2.0/repositories/WORKSPACE/REPO/pipelines/{PIPELINE_UUID}/stopPipeline

新しいパイプラインに古いほうを止めさせる

Atlassian のサポートが勧めた手順を、パイプラインの最初のステップでします:

  1. 同じブランチの新しい順のパイプラインを読みます($BB_AUTH は メールアドレス:API トークン):
    curl -u "$BB_AUTH" "https://api.bitbucket.org/2.0/repositories/$BITBUCKET_REPO_FULL_NAME/pipelines/?target.branch=$BITBUCKET_BRANCH&sort=-created_on&pagelen=20"
  2. state.name が PENDING か IN_PROGRESS で、build_number が $BITBUCKET_BUILD_NUMBER より小さい物だけを残します。自分や、自分より新しい物は止めません。
  3. 残った物の uuid ごとに stopPipeline を送ります。400 は、その間に終わったというだけです。

止めずに順番待ちにする:concurrency groups

2025年6月から、ステップに concurrency-group を付けられます(Atlassian のお知らせ)。同じグループのステップは、パイプラインをまたいで1度に1つだけ、先に来た順に動き、ほかは Waiting to run で待ちます。デプロイが2つ同時に走るのは防げますが、古いほうは止まりません。どのパイプラインも最後まで動きます。

IntelliJ IDEA からパイプラインを止めるなら

Pipeline Inbox for Bitbucket Pipelines は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。Bitbucket Cloud のすべてのリポジトリのパイプラインを IDE のツールウィンドウに並べ、待っている・動いている・手動のステップで止まっている物を見る実行中の絞り込みと、いまのブランチのパイプラインをステータスバーに出します。動いているパイプラインのパイプラインを止める(英語の画面では Stop Pipeline)は同じ stopPipeline を送るので、自分のブランチの古い実行を Bitbucket を開かずに止められます。自分から勝手に止めることはしません。一覧・ステップ・ログは無料、実行・もう一度実行・停止は Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

JetBrains Marketplace で入手

Atlassian、Bitbucket、Bitbucket Pipelines は Atlassian の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Atlassian・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:失敗したパイプラインをもう一度実行する · custom のパイプラインを変数つきで実行する · ビルド時間を使い切った · 「No online runner available」 · 「Permission denied to update branch」 · 「You have reached your pull rate limit」(Docker Hub) · 「There is an error in your bitbucket-pipelines.yml」 · 「This pipeline was paused」(デプロイ) · IntelliJ IDEA の Bitbucket Pipelines 用プラグインの比較 · English