CircleCI 2.0 の config.yml の設定値を新しくおぼえた!メモ

CircieCI の設定を変更するにあたって、初めて知った設定値や並列実行のことをメモっておこうとおもいます。

config.yml の設定値について

persist_to_workspace

Special step used to persist a temporary file to be used by another job in the workflow. Note: Workspaces are stored for up to 30 days after being created. All jobs that try to use a Workspace older than 30 days, including partial reruns of a Workflow and SSH reruns of individual jobs, will fail.

(ワークフロー内の別のジョブで使用される一時ファイルを永続化するために使用される特別な手順。

注:ワークスペースは、作成後最大30日間保存されます。 Workflowの部分的な再実行や個々のジョブのSSHの再実行など、30日以上前のWorkspaceを使用しようとするすべてのジョブは失敗します。)

Configuring CircleCI - CircleCI

paths:(共有するパス。指定は絶対パスroot の値からの相対パス表記で) には . と指定すれば、そこがすべて他のジョブと共有されるということみたい。

store_rest_results

Special step used to upload test results so they display in builds’ Test Summary section and can be used for timing analysis. To also see test result as build artifacts, please use the store_artifacts step.

(テスト結果をアップロードしてビルドの Test Summary セクションに表示し、タイミング解析に使用できるようにするための特別な手順。テスト結果をビルド成果物としても表示するには、store_artifactsステップを使用してください。)

Configuring CircleCI - CircleCI

Test Summary セクションというのは CircleCI の実行結果の画面にあるタブのことですね。

少し古いけど、どんな機能かについてはこちらの記事がより具体的にイメージしやすいかも。

テスト分割のトラブルシューティング – CircleCI Japanese Support Center

テストの並列実行について

If your project has a large number of tests, it will need more time to run them on one machine. To reduce this time, you can run tests in parallel by spreading them across multiple machines. This requires specifying a parallelism level. You can use either the CircleCI CLI to split test files, or use environment variables to configure each parallel machine individually.

(プロジェクトに多数のテストがある場合、それらを1台のマシンで実行するにはさらに時間がかかります。 この時間を短縮するために、複数のマシンにテストを分散してテストを並行して実行できます。 これには並列処理レベルを指定する必要があります。 CircleCI CLIを使用してテストファイルを分割することも、環境変数を使用して各並列マシンを個別に構成することもできます。)

Running Tests in Parallel - CircleCI

parallelism キーに 1 より大きい値をセットすることで並列数が指定できるそう。

おわりに

最近関わるプロジェクトでは、CI にはほぼ 100% CircleCI を使っている。(わたしが選定したわけじゃなく、すでにプロジェクトで採用されていた)

ほかの CI サービスについて詳しいわけじゃないけど、CircieCI がこんなに便利でいろんな設定がカンタンにできるなら、自分としても積極的に使っていきたいなと思った!

ふだん CI については「pass したか fail したか」くらいしか気にしていなかったけど、カスタマイズのしがいがあっておもしろそうだ。