CircleCI CLI で実行されるジョブの名前は "build" でなければいけない

注釈

2021/02/23 現在の情報です。

結論

build という名前のジョブが存在しない場合、以下のようなエラーが出ます。

$ circleci local execute
Docker image digest: sha256:99018c7b8dca0f952d65d80bfe6174a8ea0ca0e1908974cfea053e4be170eee5
====>> Spin up environment
Build-agent version  ()
Error:
Configuration errors: 1 error occurred:
        * Cannot find a job named `build` to run in the `jobs:` section of your configuration file.
If you expected a workflow to run, check your config contains a top-level key called 'workflows:'

補足

  • このことはつまり、CircleCI CLI で実行できるジョブの名前は build に限るということです
    • CircleCI CLI で実行すること前提の場合は build というジョブ名にしなければいけないということです
  • $ circleci local execute のエイリアス(?)である旧コマンドが $ circleci build という名称であることからも、build という名前のジョブ名が必要であることが伺えます

結論

  • ジョブ名 build は CLI でのローカル実行用のジョブとして記述するのがいい
    • ただし、build ジョブが workflows のどこかに記述されていないと、CLI の実行時にエラーになる*1
    • build の部分のメンテを怠ると本番の(?)CircleCI での実行結果と異なってしまうので注意する
  • $ circleci local execute -c cli_senyo_config.yml として CLI 専用のコンフィグファイルを作って実行するという方法もある
    • こちらの場合もメンテを怠らないようにする
  • 総論としては、現状では、CLI での実行はあくまで補助的なものやサンドボックス的なものであると思います

補足

  • --job オプションの後にジョブ名を指定することで、build 以外のジョブ名でも実行できます

*1:「ジョブだけ定義して workflows には含めない」状態では、CLI の実行に際してはエラーになる

Powered by はてなブログ