circle.ymlを定義する
まずはcircle.yml
にデプロイ方法を記述していきます。
なお、ここではstagingブランチをステージング環境、masterブランチをプロダクション環境としていますので、プロジェクトによって適宜変更してください。
machine:
python:
version: 2.7.6
dependencies:
pre:
- pip install awsebcli
deployment:
staging:
branch: staging
commands:
- eb deploy env-name-of-staging
production:
branch: master
commands:
- eb deploy env-name-of-production
まず、ElasticBeanstalkのデプロイに必要なeb
コマンドをインストールします。
そして、デプロイ時はebコマンドから環境を指定してやれば、その環境にデプロイされます。
また、後述の設定ファイルでデプロイ先の環境を指定することもできます。
Pythonのバージョンを指定しているのは、それによってvirtualenv環境が設定されてキャッシュが効くようになるからです。
eb用の設定ファイルを定義する
続いて、ebコマンド用の設定ファイルを用意します。
ファイル名はconfig.global.yml
かconfig.yml
のどちらかにする必要があります。
global:
application_name: app-name
default_region: someweher
最低限必要なのはapplication_name
だけですが、ここでdefault_region
を定義しない場合はeb --region=somewhere
の形式で都度指定する必要があります。
また、branch_default
以下にブランチごとの設定を書くことも可能です。
.gitignoreに追記する
最後に、.gitignore
に追記していきます。
まず、ebコマンドは.elasticbeanstalk
以下に色々とファイルを生成するので、これをバージョン管理しないようにします。
しかし、先ほど設定した設定ファイルはデプロイ時に必要なため、例外にします。
.elasticbeanstalk/*
!.elasticbeanstalk/config.global.yml
これで準備は完了です。
gitのブランチに変更があった際に、CircleCIでビルドが走り、デプロイが反映されれば成功です。