注釈
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 CLI で実行すること前提の場合は
$ 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 の実行に際してはエラーになる