■はじめに
ここでは、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を記載しておいてください。
例)http://hogehoge.con:3456/