画像

[2015-01-13-1] でデプロイ時にchalow が実行されるようになったので、
GitHubへのPushをトリガーにして自動デプロイを実装してみました。

文字で分かりづらいですが、よくある自動デプロイと同じです。(chalow
でここまでやっている人はいるのかな?)

  1. GitHubのmasterへのマージをトリガーにして、CircleCIが自動デプロイ開始
  2. CircleCIがGitHubの最新のソースを取得(a)
  3. テスト実行(chalowを実行するだけ)
  4. capistranoでデプロイ開始。masutaka.netにsshでログインする(b)
  5. masutaka.netの中でGitHubの最新のソースを取得(c)
  6. index.html等、静的コンテンツを配置
  7. chalowを実行して/chalow以下の静的コンテンツを配置
  8. 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を入れないとエラーになってしまいました。

CircleCIのIRC連携

iPhoneのim.kayac.comへの通知はこんな感じ。

im.kayac.com

LimeChatにはこのように通知されます。

LimeChat