CircleCI ver2.1に追加された機能をおさらいしておく

Created
Mar 21, 2022 12:48 PM
Tags
Cover

Overview

CircleCIはこれまで業務で何気なくつかっていて、config.ymlくらいは難なく読めるわけだが、いざ自分で書いてみるとなると話は別。ネットでぐぐってみると新しい概念が登場していたりしたのでそれをまとめる。

Executors

何かと定義箇所が重複してしまう実行環境をまとめて定義することが可能。
executors: default: working_directory: ~/workspace docker: - image: circleci/node:8.11.4
呼び出すときはこんな呼び出す。nameがexecutorsで定義した名前ね。
build: executor: name: default

Command

ジョブ内で定義するStepをコマンドとして切り出すことができる。 定義箇所がまとまることでだいぶ見やすくはなるし、定義量が減らせる
save_npm: steps: - save_cache: name: Cache npm dependencies key: npm-{{ checksum "package-lock.json" }}-{{ .Environment.CACHE_VERSION_NPM }} paths: - ~/workspace/node_modules

Parameter

ワークフローのでジョブを実行する際に、パラメータを渡すことができるのがこの機能 後述するが、この機能とConditional Stepを組み合わせるといい感じで、コード量が減らせる
定義はこんな感じ
commands: echo: parameters: val: type: string
steps: - echo: val: << parameters.val >>

Conditional Step

Stepsの中で条件分岐できる。地味に便利ではあるがやりすぎると可読性がさがるので気をつける必要がある
steps: - run: echo begin steps - when: condition: << parameters.run_test >>

参考リンク