BitbucketにPushされた時に自動でサーバーにデプロイする方法【Node.js】
■はじめに
ここでは、BitbucketにPushされたことをトリガーにして、サーバーにソースコードをデプロイする方法を記載します。
Node.jsの環境やBitbucketに関しては、ある程度理解している前提で記載しますので、わからない部分は都度調べてください。
■手順
まずは、ソースコードの全量は以下です。
var exec = require('child_process').exec
var http = require('http');
var cmd = 'cd /var/www/html/ && git pull origin master';
/*コマンド実行関数*/
function update() {
return exec(cmd, {timeout: 90000},
function(error, stdout, stderr) {
if(error !== null) {
console.log(error);
}
}
)
};
http.createServer(function (req, res) {
if(req.method == 'POST'){
console.log("===deploy===");
update();
}
}).listen(3456);
基本的には、コピペでいいですが、以下だけ修正しないといけません。
以下は、実行するコマンドです。
cdコマンドのディレクトリを「.git」が格納されているディレクトリに指定してください。
また、pullした後に何かコマンドを実行したければ「&&」でつなげて記載してください。
var cmd = 'cd /var/www/html/ && git pull origin master';
以下は、利用するポート番号を指定しています。
このポート番号は、ファイアーウォールに穴あけをしておいてください。
}).listen(3456);
最後に、Bitbucketの「リポジトリ -> 設定 -> Webhooks」に上記のNodeの実行URLを記載しておいてください。