Command

    ジョブステップを細かく名前を付けて細分化する為に使います。例えばどこかにバックアップする処理を行うのに

    1. tgzに圧縮
    2. どこかへアップロード

    というような複数のフローに対してbackupのようなコマンド名を付けることで、それをジョブステップの中の重要なキーのように置いて使うことができます。

    commands:
      backup:
        description: ...
        parameters:
          file_name:
            type: string
            default: ...
        steps:
          - run: tar -cvzf << parameters.file_name >>.tgz foo
          - run: ./backup.sh
    
    jobs:
      build:
        executor: ...
        steps:
          - backup:
              file_name: ...
    

    形から分かる用にcheckoutなどは CircleCI が定義してるコマンドなのです。