3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Circle CI のAPIを使って、ターミナルからリリース

Last updated at Posted at 2017-05-22

Circle CI + GitHubでの自動デプロイをちょっといじった。

世の中はChatOpsとかが流行っているけど、ターミナルは常に開いているのでこれで良しとした。

経緯

今まで、Gitフローで

masterブランチにマージ => staging環境にデプロイ
releaseブランチにマージ => production環境にデプロイ

ということをやっていたが、 master -> release のプルリクが面倒になってきたので
master にマージしたら反映されるようにしたい。

ただ、masterにプッシュしたら即productionに反映されるのはちょっと困ることがあるので
CircleCIのAPIを使って手動でキックして本番環境に反映するようにした。

やったこと

下記のスクリプトを実行すれば、productionにデプロイされる。

ci/release.sh
#!/bin/bash

curl -X POST --header "Content-Type: application/json" -d '{
  "build_parameters": {
    "DEPLOY": "true"
  }
}
' 'https://circleci.com/api/v1.1/project/github/organization/project?circle-token=トークン'

デプロイのスクリプトで、環境変数 $DEPLOY の有無で本番に反映するか分岐させている。

deploy.sh
# 本番環境の場合、環境変数DEPLOYが有った場合のみ処理を行う。
# CircleCIのAPIを使ってリリースする前提。
[ -n "$DEPLOY" ] || exit 0
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?