Lesstep
Jenkins 2.580.1・Pipeline: Job 1622・2026年10月30日に確認

Jenkins:中止できない Pipeline のビルド

Pipeline のビルドを止める(赤い X、またはビルドの stop への POST)と、動いているステップに止まるよう頼みます。ふつうは数秒で終わります。ただ、例外を全部つかまえるスクリプトだと、止まらずに続くことがあります。2026年10月までは、そのときコンソールに Click here to forcibly terminate running steps と Click here to forcibly kill entire build の2つのリンクが出ていました。Pipeline: Job 1622 からは、Jenkins がこの2段を15秒おきに自分で行い、term と kill の住所は無くなりました。以下は、Pipeline のプラグインを入れた Jenkins 2.580.1 で、2026年10月30日に試した実物の答えです。

止めると起きること

bat 'ping -n 300 127.0.0.1' を動かしているビルドを、POST 1回で止めました(日本語の Jenkins):

Sending interrupt signal to process
testerによる中断
Stage "After" skipped due to earlier failure(s)
[Pipeline] { (Declarative: Post Actions)
post always ran
Finished: ABORTED

Jenkins が自分で強制終了する(2026年10月から)

例外を全部つかまえるスクリプトは、止めても動き続けます。ステップへの割り込みも例外だからです:

script {
  for (int i = 0; i < 900; i++) {
    try {
      sleep time: 1, unit: 'SECONDS'
    } catch (e) {
      echo "caught: ${e}"
    }
  }
}

stop へ POST を1回送り、あとは何もしないと(英語の Jenkins):

 0.6 秒  Aborted by tester
 0.6 秒  caught: org.jenkinsci.plugins.workflow.steps.FlowInterruptedException: Aborted by tester
15.2 秒  Forcibly terminating running steps
15.2 秒  Terminating sleep
15.2 秒  caught: org.jenkinsci.plugins.workflow.steps.FlowInterruptedException:
30.4 秒  Forcibly killing entire build
30.4 秒  Finished: ABORTED

/term と /kill のリンクはどこへ

Pipeline: Job 1622 より前は、中止してもビルドが終わらないと、15秒後にコンソールに「Click here to forcibly terminate running steps」、さらに15秒後に「Click here to forcibly kill entire build」が出ました。リンクはビルドの term と kill の住所へ POST を送り、ビルドのサイドパネルにも同じ物が出ました。1622 からは、どちらの住所もありません:

curl -X POST -u '<ユーザー>:<API トークン>' https://jenkins.example.com/job/<ジョブ>/<番号>/term
HTTP 404
curl -X POST -u '<ユーザー>:<API トークン>' https://jenkins.example.com/job/<ジョブ>/<番号>/kill
HTTP 404

…/term や …/kill を開くよう書いた答えは、前の版の話です。自分の版は Jenkins の管理 > プラグイン > インストール済みプラグイン > Pipeline: Job で見られます。1622 以降なら、1回止めて30秒ほど待ちます。

スクリプトがすぐ止まるようにする

割り込みは通します。FlowInterruptedException を先につかまえて、そのまま投げ直します。

try {
  sleep time: 1, unit: 'SECONDS'
} catch (org.jenkinsci.plugins.workflow.steps.FlowInterruptedException e) {
  throw e
} catch (e) {
  echo "caught: ${e}"
}

Groovy のサンドボックスのまま、スクリプトの承認なしで動き、同じ中止でビルドは0.6秒で終わりました(Aborted by tester・Finished: ABORTED)。retry ステップは、本物の割り込みならやり直さずに終わるようになっています。

curl でビルドを止める

curl -X POST -u '<ユーザー>:<API トークン>' https://jenkins.example.com/job/<ジョブ>/<番号>/stop
HTTP 200

IntelliJ IDEA からビルドを止めるなら

Pipeline Inbox for Jenkins は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。選んだジョブのビルドを、段・失敗したテスト・コンソールのログと一緒に並べます。ビルドを止める(英語の画面では Stop Build)は、確かめてから赤い X と同じ stop への POST を送り、ビルドを読み直します。Pipeline: Job 1622 以降なら、応じないビルドは Jenkins が自分で終わらせます。前の版では、Jenkins のビルドのコンソールのリンクを使います。ビルドの一覧・段・コンソールのログは無料、ビルドの実行・停止・input への回答は Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

Jenkins® は LF Charities Inc. の登録商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは Jenkins プロジェクト・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:入力待ちのビルドを続行・中止する · 「利用可能な次のエグゼキューターを待っています」 · IntelliJ IDEA で使える Jenkins のプラグインの比較 · English