そもそもWebhookは何でしょうか
Wikiによりますと。
Webhooks are
user-defined HTTP callbacks
. They are usually triggered by some event, such as pushing code to a repository or a comment being posted to a blog.
ユーザー定義したhttpのcallbacksとなります。特定なイベントでキックされる。例えば:リポジトリにプッシュされること、ブログにコメントが投稿されること。
サンプルとして下記の環境にステップバイステップで自動デプロイを実現する予定です。
対象環境
レポジトリとwebhook側(githubとgitbucketはほとんど同じ)
- Git: gitlab.com
サーバ側(Conoha)
- OS: CentOS7.4
- WebServer: Apache2.4
- Language: PHP7.1
サーバ環境の整備
サーバにパッケージのインストール
echo "必要なパッケージをインストール[git, httpd, php7.1]"
sudo yum install git httpd -y
yes yes | sudo yum install epel-release
sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yes yes | sudo yum install --enablerepo=remi-php71 php -y
仮にwebhookの受信用のプロジェクトを/var/www/gitlab-webhookへ置くようにします
echo "フォルダの作成"
sudo mkdir /var/www/gitlab-webhook
echo "Apacheの設定"
sudo vim /etc/httpd/conf.d/gitlab.conf
gitlab.confに下記の内容を追加
alias /gitlab/ /var/www/gitlab-webhook/
<Directory /var/www/gitlab-webhook/>
AllowOverride all
Require all granted
</Directory>
テストファイルの作成して、テスト用のスクリプトの追加
sudo vim /var/www/gitlab-webhook/gitlab.php
<?php
echo "Ok";
?>
完了
ブラウザで「http://サーバIPアドレス/gitlab/gitlab.php」
にアクセスし、Okが表示されたら環境構築は完了。
LAMPと同じなので、簡単でしょう。
では、また。