[2015-01-13-1]
でデプロイ時にchalow
が実行されるようになったので、
GitHubへのPushをトリガーにして自動デプロイを実装してみました。
文字で分かりづらいですが、よくある自動デプロイと同じです。(chalow
でここまでやっている人はいるのかな?)
- GitHubのmasterへのマージをトリガーにして、CircleCIが自動デプロイ開始
- CircleCIがGitHubの最新のソースを取得(a)
- テスト実行(chalowを実行するだけ)
- capistranoでデプロイ開始。masutaka.netにsshでログインする(b)
- masutaka.netの中でGitHubの最新のソースを取得(c)
- index.html等、静的コンテンツを配置
- chalowを実行して/chalow以下の静的コンテンツを配置
- IRC -> tiarra(-> Auto::Im) -> im.kayacという流れで手元のiPhoneに通知
sshの鍵が3つ必要でした
(a) CircleCIとGitHub連携時に自動生成される
(b) CircleCIのProject settings -> Permissions -> Checkout SSH keysから生成する。(a)もここで確認可能
(c) ローカルでssh-keygenコマンドを実行して生成して、Project settings -> Permissions -> SSH Permissionsに登録
(c)は普段使っているsshの鍵でも動きますが、CircleCIに秘密鍵を渡した
くなかったので、新規に作りました。
circle.ymlとその中で使われるシェルスクリプトはこんな感じです。
YAMLだけで書けないのかな。。
8はCircleCIのIRC連携です(Project setting -> Notifications -> Chat Notifications)。
適当なUsernameを入れないとエラーになってしまいました。
iPhoneのim.kayac.comへの通知はこんな感じ。
LimeChatにはこのように通知されます。