Lesstep
Jenkins 2.580.1・Pipeline: Input Step・2026年10月30日に確認

Jenkins Pipeline の input ステップ:続行か中止か

Pipeline の input ステップは、ビルドを止めて、誰かが Proceed(ステップの ok の文字)か Abort を選ぶまで待ちます。timeout で囲まない限り、期限はありません。答えるのはビルドの画面からでも、ビルドの input/<id>/ の住所への POST 1回でもできます。以下は、Pipeline のプラグインを入れた Jenkins 2.580.1 で、2026年10月30日に試した実物の答えです。

答えられる人

Pipeline: Input Step プラグインのソースより:

コンソールには答えた人が「Approved by <ユーザー>」か「Rejected by <ユーザー>」で出ます。その名前をスクリプトの後で使うなら submitterParameter を付けます。ステップが値と一緒にその名前を返します。試したときは、submitter: 'alice,release-managers' に入っていない管理者のユーザーでも続行できました。

ビルドの画面で答える

input の ID を知る

答えはどれも /job/<ジョブ>/<番号>/input/<id>/ へ送ります。ID は Jenkins がこう決めます:

走っているビルドから読むなら、Stage View の REST API が待っている input を並べます:

curl -u '<ユーザー>:<API トークン>' 'https://jenkins.example.com/job/<ジョブ>/<番号>/wfapi/pendingInputActions'

[{"id":"Release","proceedText":"Release","message":"Release 1.4.0?",
  "inputs":[{"type":"ChoiceParameterDefinition","name":"TARGET",
    "definition":{"defaultVal":"staging","choices":["staging","production"]}}],
  "proceedUrl":"/job/<ジョブ>/<番号>/wfapi/inputSubmit?inputId=Release",
  "abortUrl":"/job/<ジョブ>/<番号>/input/Release/abort",
  "redirectApprovalUrl":"/job/<ジョブ>/<番号>/input/"}]

curl で続行・中止する

curl -X POST -u '<ユーザー>:<API トークン>' \
  'https://jenkins.example.com/job/<ジョブ>/<番号>/input/<id>/proceedEmpty'
HTTP 200      (コンソール「Approved by <ユーザー>」・ビルドはそのまま SUCCESS まで)

curl -X POST -u '<ユーザー>:<API トークン>' \
  'https://jenkins.example.com/job/<ジョブ>/<番号>/input/<id>/abort'
HTTP 200      (コンソール「Rejected by <ユーザー>」・後の段は「skipped due to earlier failure(s)」・Finished: ABORTED)

パラメーター付きの input は proceedEmpty でなく submit で

パラメーターを聞く input に proceedEmpty を送っても HTTP 200 が返りましたが、その後ビルドは失敗しました。ステップが値を返さず、値を読むスクリプトの次の行で止まりました:

groovy.lang.MissingPropertyException: No such field found: field java.lang.String TARGET
Finished: FAILURE

値は submit へ、項目 proceed と一緒に送ります(画面は ok の文字を送ります):

curl -X POST -u '<ユーザー>:<API トークン>' \
  'https://jenkins.example.com/job/<ジョブ>/<番号>/input/Release/submit' \
  --data-urlencode 'json={"parameter":[{"name":"TARGET","value":"production"}]}' \
  --data-urlencode 'proceed=Release'
HTTP 200      (スクリプトは TARGET=production と、承認した人のユーザー ID を受け取った)

proceed が無いと、プラグインのソースでは submit は中止として扱われます。

Jenkins CLI には命令が無い

Pipeline のプラグイン(workflow-aggregator)を入れた Jenkins 2.580.1 の CLI は68の命令があり、input ステップに答える物はありませんでした。Pipeline の物は replay-pipeline・restart-from-stage・declarative-linter で、stop-builds はビルドごと止めます。上の HTTP を使います。

無期限に待ち、エグゼキューターを握ったままになることがある

IntelliJ IDEA から input に答えるなら

Pipeline Inbox for Jenkins は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。input を待っているビルドは、詳細に input のメッセージが出ます。続行のボタン(ステップの ok の文字)と中止のボタンが proceedEmpty と abort で答えます。パラメーターを聞く input には中止だけを出し、続行は input のページに任せるので、値が飛ばされません。自分のビルドか、いまのブランチのビルドが input に着くと、IDE が input のメッセージつきの通知で1回知らせ、開くとそのビルドが続行と中止のボタンつきで出ます。待っている input は Stage View から、無ければ Pipeline Graph View から読みます。ビルドの一覧・段・コンソールのログは無料、input への回答・ビルド・中止は Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。

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

ほかに:「Nothing is submitted」(パラメーター付きのジョブの起動) · IntelliJ IDEA で使える Jenkins のプラグインの比較 · English