現在さくらサーバー(スタンダード)にて下記を参考にしてPUSHのタイミングで
さくらサーバーに自動デプロイすることができるようになりました。
http://berry22.com/blog/bitbucket-sakura-auto-deploy/
php
1<?php 2$user_id = '【さくらのサーバーID】'; 3$git_dir = '/home/' . $user_id . '/git/repo/【リポジトリ名】.git'; 4$work_tree = '/home/' . $user_id . '/www/【公開ディレクトリ】/'; 5// logファイル 6$log_file = '/home/' . $user_id . '/log/deploy.log'; 7// Gitコマンドパス 8$git_command = 'git'; 9 10$secret_key = '【記号以外の半角英数字でパスワードを設定】'; 11 12if ($_GET[key] === $secret_key){ 13 exec($git_command . ' --git-dir=' . $git_dir . ' fetch'); 14 exec($git_command . ' --git-dir=' . $git_dir . ' --work-tree=' . $work_tree . ' checkout -f master'); 15 $commit_hash = shell_exec($git_command . ' --git-dir=' . $git_dir . ' rev-parse --verify HEAD'); 16 file_put_contents($log_file, date('r') . " Ref: " . $ref . " Commit: " . $commit_hash . "\n", FILE_APPEND); 17}
しかし、様々なリポジトリでリモートへPUSHを複数人で行っているとその度にWebhookが
発火するためさくらサーバーへの自動デプロイがうまくいかなくなる現象が置きます。
(さくらの中を見ると.git/index.lockが生成される、この現象もわかりません。。
上記のファイルを削除して暫く経たないとすぐkillされるが時間が経ってから手動で下記を行うと反映できる)
git --git-dir=/home/【さくらのサーバーID】/git/repo/【リポジトリ名】.git --work-tree=/home/【さくらのサーバーID】/www/【公開ディレクトリ】/ checkout -f master
どのようにかけばgithubのwebhookのタイミングをmasterにPUSHした時だけにできますでしょうか。
大変お手数ではございますがご教示いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/16 06:46
2018/01/16 07:56
2018/01/16 08:17