1. selmertsx

    No comment

    selmertsx
Changes in body
Source | HTML | Preview
@@ -1,114 +1,114 @@
自分のブログに書いたけれども誰にも見られてなくて悲しかったので転載しました。
http://selmertsx.hatenablog.com/entry/2017/11/20/192719
## 概要
自分がいるプロダクトでCircleCI 2.0 の導入をすることになった。
恥ずかしいことにCircleCIの設定を自分でしたことが無かったので、設定を簡単にする方法を探した。
公式ドキュメントを読んでいたら、circleci をlocalで動かす方法が見つかったのでやってみた。
その結果、10minくらいで簡単に動かせることが分かった。
このドキュメントには、circleciをlocalで動かす方法と、localで動かす際の注意点を記載する。
基本的には、[このドキュメント](https://circleci.com/docs/2.0/local-jobs/)からの抜粋なので、疑問に思ったらそっちを見て頂けると :pray:
## 手順
- circleciコマンドのインストール
- circleci 2.0用の設定ファイルを書く
- local環境でcircleciを動かす
## circleciコマンドのインストール
```shell
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設定ファイルはこちら。
```yaml
#.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
+ command: yarn test
- run:
name: tslint
- command: yarn tslint -c tslint.json 'src/**/*.ts'
+ command: yarn lint
```
ここでは、この設定の説明はしない。下記のページにconfigの書き方が記載されているので、必要あれば確認して欲しい。
https://circleci.com/docs/2.0/configuration-reference/
## local環境でcircleciを動かす
```shell
# 設定した 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で確認できるようになると、ちょっと書き換えるときにも色々と捗るので便利そう!