Whisky & Woman

Github に push したら自動でデプロイする

goreman はプロセスを管理してて、gorem はサーバ兼リバースプロキシ。

http://mattn.tonic-water.com/blog/2013/05/10/manage-apps-with-gorem-and-goreman.html

今回はこれに gost を足して表題の件を実現する。

$ go get github.com/mattn/gost

github に push した時に Web Hook というのが投げられるのだけど、その投げ先を gost になるように gorem の設定を変更する。

{ "path": "/deploy/", "backend": "http://localhost:11613" },

gost はポート 11613 で動かす予定。 これで /deploy/ へのアクセスがあると、gost へ転送される。さて gost の設定

{
        "addr": "127.0.0.1:11613",
        "rpc": "127.0.0.1:11601",
        "apps": {
                "wikipedia-lingrbot": {
                        "proc": "wikipedia_bot",
                        "path": "/home/mattn/dev/wikipedia_bot/",
                        "build_command": "go build",
                        "test_command": "go test"
                },
                "momochan": {
                        "proc": "momochan",
                        "path": "/home/mattn/dev/momochan/"
                }
        }
}

rpc は goreman の RPC ポートを設定する。デフォルトは 5555 だけど GOREMAN_RPC_PORT という環境変数で変更出来る。この値を .bashrc 等に入れておくと良い。 wikipedia-lingrbot は github のリポジトリ名、wikipedia_bot は goreman の Procfile に書いた proc 名。 path はそのリポジトリがあるローカルパス。標準で git pull origin master するが、git@github.com で clone してると認証が必要になるので https://github.com で clone しておく事。 もし pull した後にビルドが必要であれば build_commandtest_command を足せる。 あとは gost も Procfile に足してしまえばいい。

なお、くれぐれも github 側で Web Hook の URL を足すのを忘れないように。


サイトトップへ