CircleCIの基礎

CIサービスの理解がかなり弱いと感じていたので、早速新刊を読んでみた。3,5,6章に関しては今週中に読み切りたい。

blog.tomoya.dev


以下は自分用まとめ

動作フロー

  • リモートリポジトリのpushトリガーとして、webhookでCircleCIに通知を行う。通知を受けて、CircleCIはジョブを実行する
  • webhookの合間にpushされたcommitがある場合は、それに対応するジョブは実行されない
  • 失敗した場合はリモートリポジトリに通知を行う
    • PRのCIステータスなんかはそれの結果を表示してそう

用語

ビルド

リポジトリのコードを元にアプリを構築すること

プロジェクト

CircleCIから参照されるリポジトリのこと。プロジェクトを追加されて初めてCircleCI側の設定ができるようになる

ステップ

CircleCIで実行される処理の最小単位。その中でもCiecleCI側が用意しているものとユーザが設定するもので分類される。

ジョブ

1つ以上のステップがまとまったもの。ジョブ1つ1つで実行環境が作られ、終了すると環境は破棄される。

Executor

ジョブの実行環境のこと

ワークフロー

複数のジョブをまとまりや実行制御を記載するもの。実行順や並列実行について定義できる

データの永続化

ワークスペース

同じワークフロー間でデータを共有するための仕組み。チェックアウトしたコードを次のワークフローでも利用するときなどに宣言して使う

キャッシュ

異なるワークフロー間でジョブのデータを共有するための仕組み。ワークスペースが1回の処理内で共有する縦の共有だとしたら、キャッシュは異なるタイミングのジョブ間で横の共有をするイメージ。 ダウンロードしたライブラリをそのまま使い続けたいときなどに使うもの。

アーティファクト

ジョブの実行結果を保存するためのもの