CircleCI に導入された circleci コマンドでローカルでも CircleCI の挙動を確認できるようになった。
…というのは嘘である。
気づいただけで、ふたつ不満がある。たとえば CircleCI の cron は、システムレベルの cron がサポートする */x (x: 整数)
のような記法をサポートしていない。つまり、5分おきにジョブを走らせたいときに */5 * * * *
と 書けない 。かわりに 5,10,15,20,25,30,35,40,45,50,55 * * * *
と書かなければならない。しかし、この問題は circleci
コマンドの文法チェックでは検知できない。わたしは、これをリモートに push したあとで「うーん、動かないなぁ」と思いながら色々とぐぐって問題を発見した。つらい。
また、ローカル環境で次のように .circleci/config.yml
を書くと Error: error authentication with ECR: AWS Credentials not found
と怒られる。
version: 2
jobs:
build:
docker:
- image: 00000000000.dkr.ecr.ap-northeast-1.amazonaws.com/my-image:latest
aws_auth:
aws_access_key_id: $AWS_ACCESS_KEY_ID
aws_secret_access_key: $AWS_SECRET_ACCESS
steps:
- run:
name: Greeting
command: echo Hello, world.
$ circleci build
Build-agent version 0.0.5895-01cdb92 (2018-05-29T20:07:10+0000)
Error: error authentication with ECR: AWS Credentials not found
Step failed
Task failed
つまりは $AWS_ACCESS_KEY_ID
や $AWS_SECRET_ACCESS_KEY
を circleci
コマンドが認識できていないということなのだと思う (これらの環境変数が設定されていても)。しばらく「うーん…うーん」と思ったけれど、リモートに push したらすんなり動いたので、悩んだ時間だけ損であった。
この手の「リモートの機能をローカルでも実現する」ようなツールは、単なるシミュレータ以上のものではないな、という月並みな感想をもった。実機確認に勝るものなし。面倒だけど、結局その方が時間を節約できる。