Acme::Hakomonos::JPをリリースしたら、自動的にWebサイトも更新したい
GitHubで公開しているAcme::Hakomonos::JP。 このモジュールをリリースしたら箱ものデータベースサイト http://hakomono.dokechin.com/も自動的に更新したい。
GithubのwebhooksのPOSTを本番サーバ(さくらVPS)で受ける。
nginx.confのリバースプロキシの設定
location / { proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://webhooks; }
MojoliciousアプリでPOSTを受けるように、以下のように書いておく。 githubからのIPアドレスって変わらないのかな??
package Webhooks::Web::Hakomono; use Mojo::Base 'Mojolicious::Controller'; # This action will render a template sub deploy { my $self = shift; my $remote_addr = $self->req->env->{REMOTE_ADDR}; warn ($remote_addr); if ($remote_addr eq "192.30.252.47"){ chdir ("/tmp"); system("rm -rf Acme-Hakomonos-JP"); system ("git clone https://github.com/dokechin/Acme-Hakomonos-JP.git"); chdir ("/tmp/Acme-Hakomonos-JP"); system ("source ~/.bash_profile;cpanm ."); system ("supervisorctl restart hakomono"); } # Render template "example/welcome.html.ep" with message $self->render( message => 'done'); } 1;
こんな感じで、沖縄コンベンションセンターのデータを追加して、 Acme::Hakomonos::JPをminil releaseしたら サイトに自動的に反映された。なんか嬉しい。
IPアドレス部分の稼働確認はまだなので、もう一つ何か、施設を追加しないと・・・ 今のところ坪単価ナンバーワンは静岡グランシップ。 これを超える箱物はないかな?!