Bitbucket Pipelines:「There is an error in your bitbucket-pipelines.yml」
Bitbucket がファイルを読んで受け付けなかったので、パイプラインは動いていません。文は「どこで」の後に「何が」を言います:
There is an error in your bitbucket-pipelines.yml at [pipelines > branches > develop > 1 > step > script > 0]. Missing or empty command string. Each item in this list should either be a single command string or a map defining a pipe invocation.
かっこの中は、ファイルの一番上からの道筋です。名前はキー、数字はリストの中の位置(0から数える)、(root level) はファイルの一番上です。この例なら、pipelines:・branches:・develop: の2番目の項目の step: の script: の1つ目のコマンドです。
よく報告される4つの文と、その原因
Atlassian のコミュニティで答えの出た物から:
at [(root level)]. The top-level "pipelines" section is missing, empty, or null.pipelines:の行が字下げされていました。左端から始めます。ほかのリポジトリとパイプラインを共有するファイル(export: true・Premium)でも、そのファイル自身のpipelines:が要る、と Atlassian のサポートは書いています。たとえば、自分では始まらないcustom:のパイプラインを1つ(2025年3月の質問)。To be precise: The step section is empty or null.字下げの空白が数個足りませんでした。Atlassian のオンラインの検証ツールは問題なしと言っていたのに、です(2022年5月の質問)。Missing or empty command string.YAML のアンカー(<<: *build-test)から作ったステップの隣に、キーをもう1つ書いていました。Atlassian のサポートによると、Pipelines のアンカーはセクションの子を1つだけ上書きできず、セクションごと置き換えるので、ここではステップのscriptが消えていました。そのキーはアンカーに入れず、ステップごとに書きます(2025年4月の質問)。at [options > max-time]. To be precise: This value should be an integer (it is currently defined as a string).値が$MAX_RUN_TIMEでした。YAML のファイルに変数はありません。そこでの$MAX_RUN_TIMEはただの文字なので、数字を書きます(2020年10月の質問)。
push の前に確かめる
- Atlassian の JSON スキーマは
https://api.bitbucket.org/schemas/pipelines-configurationにあり、SchemaStore の一覧がbitbucket-pipelines.ymlをそこへ結んでいます。IntelliJ IDEA は SchemaStore のスキーマを YAML のファイルにも当て、既定で自動的にダウンロードします(JetBrains:JSON。設定は Settings > Languages & Frameworks > Schemas and DTDs > Remote JSON Schemas)。なので、置き場所の違うキーや型の違いは、打っているうちにエディターが印を付けます。 - Atlassian のオンラインの検証ツール bitbucket.org/product/pipelines/validator:ファイルを貼り付けます。2025年5月に Pipelines の開発者が、これは「かなり限られている」と書いています。アンカーとエイリアスはまったく扱えず、JSON スキーマも使っていません(質問)。
- どちらも全部は見つけません。同じ質問で、
scriptの無いステップは IntelliJ IDEA の JSON スキーマでは通り、検証ツールでは断られました。最後に決めるのは、push したときの Bitbucket のチェックです。
IntelliJ IDEA でパイプラインを見張る
Pipeline Inbox for Bitbucket Pipelines は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。ファイルを確かめるエディターの隣のツールウィンドウに、Bitbucket Cloud の全部のリポジトリのパイプラインを並べます。失敗したパイプラインでは、失敗したステップとログの終わり、または Bitbucket がエラーで終わらせたときの理由を見せ、いまのブランチのパイプラインはステータスバーに出ます。一覧・ステップ・ログは無料。実行・やり直し・停止は Pro(月 US$1.50・30日の無料試用つき)。画面は日本語です。
Atlassian・Bitbucket・Bitbucket Pipelines は Atlassian の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページはそのいずれとも提携しておらず、承認も受けていません。
ほかに:push したのにパイプラインが動かない · custom のパイプラインを変数つきで実行する · 「command not found」 · 前は通ったビルドが失敗する · 「This pipeline was paused」(デプロイ) · IntelliJ IDEA の Bitbucket Pipelines 用プラグインの比較 · English