チャットからデプロイする
CIに「stagingブランチに変更がpushされたら検証環境にデプロイする」という設定をしておけば、 チャットからPull Requestを介して簡単にデプロイできるようになる。前述の通りの方法で チャットでmasterからstagingに対してPull RequestをつくってMergeすれば、勝手に検証環境にデプロイされる。
deploy: provider: heroku app: tqbot on: branch: staging
Pull Requestをつくる
「@ellen pull request "Deploy to staging" from r7kamura/tqbot:master to r7kamura/tqbot:staging」とやればデプロイできるんだけど、 おっさんに長いコマンドを打たせるのは正直つらかろうと思ったので、Ellen::Aliasというプラグインを用意してみた。 これを利用してデプロイ用のaliasをつくっておけば「@ellen deploy staging」だけでPull Requestをつくれるようになる。 (実際にはMergeするまではデプロイされないんで、意味的にはprepare deploy stagingという感じですね)
Pull Requestを確認する
Pull Requestがつくられたので、Diffを見たりして変更点を確認する。 まあ何か言いたいことがあればコメント書いといたり、適当にお洒落なラベルとか付けたりすると良いんじゃないでしょうか。
Build Status
Travis CIを使っているとPull Requestに対してBuildを実行してくれるので、ここでテストが通るかどうかも確認できる。 検証環境とかだったら確認しなくてもいい。
Mergeする
ボタンを押しても良いし、チャットからMergeしても良い。 検証環境の場合はdeploy stagingって命令したらPR即Mergeでもいいかもしれない。
川の様子
Slackとかで上手くGitHubやHerokuやTravisCIと統合しとくと、チャットでデプロイのフローが全て見通せて便利。 機械が告知するための部屋と、人間 & BOTが会話するための部屋は何となく分けてる。 普段機械がCIの様子を告知し続けているだけで問題が起こったときだけちょっと人間が喋るみたいな様子だと、 会話が起こらなくて寂しいから。