CIサービスの理解がかなり弱いと感じていたので、早速新刊を読んでみた。3,5,6章に関しては今週中に読み切りたい。
以下は自分用まとめ
動作フロー
- リモートリポジトリのpushトリガーとして、webhookでCircleCIに通知を行う。通知を受けて、CircleCIはジョブを実行する
- webhookの合間にpushされたcommitがある場合は、それに対応するジョブは実行されない
- 失敗した場合はリモートリポジトリに通知を行う
- PRのCIステータスなんかはそれの結果を表示してそう
用語
ビルド
リポジトリのコードを元にアプリを構築すること
プロジェクト
CircleCIから参照されるリポジトリのこと。プロジェクトを追加されて初めてCircleCI側の設定ができるようになる
ステップ
CircleCIで実行される処理の最小単位。その中でもCiecleCI側が用意しているものとユーザが設定するもので分類される。
ジョブ
1つ以上のステップがまとまったもの。ジョブ1つ1つで実行環境が作られ、終了すると環境は破棄される。
Executor
ジョブの実行環境のこと
ワークフロー
複数のジョブをまとまりや実行制御を記載するもの。実行順や並列実行について定義できる
データの永続化
ワークスペース
同じワークフロー間でデータを共有するための仕組み。チェックアウトしたコードを次のワークフローでも利用するときなどに宣言して使う
キャッシュ
異なるワークフロー間でジョブのデータを共有するための仕組み。ワークスペースが1回の処理内で共有する縦の共有だとしたら、キャッシュは異なるタイミングのジョブ間で横の共有をするイメージ。 ダウンロードしたライブラリをそのまま使い続けたいときなどに使うもの。
アーティファクト
ジョブの実行結果を保存するためのもの