Posted at

CircleCI で DynamoDB Local を動かす

More than 3 years have passed since last update.

CircleCI は MySQL や Redis は標準でサポートしているのですが、さすがに DynamoDB は非対応なので、テスト時に DynamoDB Local を動かすよう設定してみました。


circle.yml

dependencies:

cache_directories:
- "~/DynamoDBLocal"
post:
- "[ -d ~/DynamoDBLocal ] || (mkdir ~/DynamoDBLocal; cd ~/DynamoDBLocal; curl -s -L http://dynamodb-local.s3-website-us-west-2.amazonaws.com/dynamodb_local_latest.tar.gz | tar xz)"
test:
pre:
- "java -Xms1024m -Xmx1024m -Djava.library.path=~/DynamoDBLocal/DynamoDBLocal_lib -jar ~/DynamoDBLocal/DynamoDBLocal.jar":
background: true

dependencies の post で、HOME にディレクトリ DynamoDBLocal がなければ Amazon から取得して展開するようにしています。

dependencies の cache_directories を指定することで、展開済の DynamoDB Local をキャッシュできるので、次回以降の build 時のセットアップを短縮できます。

後は、test の pre で DynamoDB Local を稼働させればOKです。

ポイントは background: true で、これを指定することで、いわゆる nohup + & の形で実行してくれます。

設定次第でいろいろ細かいカスタマイズができ、サポートのレスポンスも丁寧で早いので、CircleCI は今のところかなりオススメですね。