CircleCIをローカルで動かす
この記事は、yoshitaku_jpの1人 Advent Calendar 2018 - Adventar の1日目の記事です。
設定ファイルの構文が間違っていたりしたとき修正後にpushするのがめんどくさくなったので、ローカル環境で実行する方法を見つけてきました。
macOS
brewでインストールできます。
brew install circleci
https://circleci.com/docs/2.0/local-cli/#alternative-install-on-macos-with-homebrew
macOS or Linux
この方法でもいけます。Linuxはこちら。
curl -fLSs https://circle.ci/cli | bash
https://circleci.com/docs/2.0/local-cli/#installing-the-circleci-cli-on-macos-or-linux
実行
実行前の制限事項
いくつかローカルでは使えない機能があるので、実行する前に並べておきます
- キャッシュは使えない
- 環境変数の設定の仕方 -ワークフローは対応していない
キャッシュは使えない
save_cache
と restore_cache
は、スキップされてwarningが表示される。現在サポートしていない記述があるので、将来的にはあるのかなぁ。
環境変数の設定の仕方
Environment Variables
が使えないので別の方法で設定します。
-e
で使えます。
circleci build -e VAR1=FOO -e VAR2=BAR
ワークフローは対応していない
ローカルのdockerを使って実行しているようで、ワークフローには対応していません。
実行コマンド
cd //対象のプロジェクト circleci build
その他のコマンド
circleci config validate
circleci config validate
で、設定ファイルの記述が正しいか教えてくれる
正しい形
yoshitaku$ circleci config validate Config file at .circleci/config.yml is valid.
checkout
の前のハイフンを削除してみた
steps: checkout - run: npm install - run: name: 'Install Dependecies' command: npm install -save firebase-tools
実行結果
yoshitaku$ circleci config validate Error: Unable to parse YAML mapping values are not allowed here in 'string', line 12, column 12: - run: npm install
circleci local execute --job JOB_NAME
単独のジョブを指定できる。 testとbuildとdeployを分けてる場合があるかも知れないが、ワークフローで一気にやることなく、個別で動かすことができる。