CircleCI 2.0 をlocalで動かす
概要
自分がいるプロダクトでCircleCI 2.0 の導入をすることになった。 恥ずかしいことにCircleCIの設定を自分でしたことが無かったので、設定を簡単にする方法を探した。 公式ドキュメントを読んでいたら、circleci をlocalで動かす方法が見つかったのでやってみた。 その結果、10minくらいで簡単に動かせることが分かった。
このドキュメントには、circleciをlocalで動かす方法と、localで動かす際の注意点を記載する。 基本的には、このドキュメントからの抜粋なので、疑問に思ったらそっちを見て頂けると :pray:
手順
- circleciコマンドのインストール
- circleci 2.0用の設定ファイルを書く
- local環境でcircleciを動かす
circleciコマンドのインストール
curl -o /usr/local/bin/circleci https://circle-downloads.s3.amazonaws.com/releases/build_agent_wrapper/circleci && chmod +x /usr/local/bin/circleci circleci update
これだけで完了
circleci 2.0用の設定ファイル
今回利用した circleci設定ファイルはこちら。
#.circleci/config.yml version: 2 jobs: build: docker: - image: circleci/node:8.9 working_directory: ~/repo steps: - checkout - restore_cache: keys: - v1-dependencies-{{ checksum "package.json" }} - v1-dependencies- - run: yarn install - save_cache: paths: - node_modules key: v1-dependencies-{{ checksum "package.json" }} - run: name: Running tests command: yarn jest - run: name: tslint command: yarn tslint -c tslint.json 'src/**/*.ts'
ここでは、この設定の説明はしない。下記のページにconfigの書き方が記載されているので、確認して欲しい。
Configuring CircleCI - CircleCI
local環境でcircleciを動かす
# 設定した config.ymlが正しいか確認する $ circleci config validate -c .circleci/config.yml config file is valid # circleciをlocalで動かす $ circleci build .circleci/config.yml ====>> Spin up Environment Build-agent version 0.0.4536-a668371 (2017-11-15T20:13:56+0000) Starting container circleci/node:8.9 using image circleci/node@sha256:80714f293dfc6fc72c815a5bc1dc35bf33b3b8e0ebfaec0b4a64c567bbd1e766 .... $ /home/circleci/repo/node_modules/.bin/jest PASS __tests__/parse.spec.ts PASS __tests__/checker.spec.ts Test Suites: 2 passed, 2 total Tests: 3 passed, 3 total Snapshots: 0 total Time: 3.074s Ran all test suites. Done in 3.73s. Success! ...
これで circleciをlocalで動かすことができた。 続いて、circleciをlocalで動かすときの注意点を記載していく。
注意点
- 環境変数を指定するときは -e オプションを使うこと
circleci build .circleci/config.yml -e VAR=VAL
みたいに書く必要がある
- circleci CLIは Workflowsに対応していない
- restore_cache, save_cache が使えない
# restore_cacheのエラーログ ====>> Restoring Cache Error: Skipping cache - error checking storage: not supported Step failed
最後に
circleciの設定をlocalで確認できるようになると、ちょっと書き換えるときにも色々と捗るので便利そう!