サイトを Bitbucket から更新する

レンタルサーバのファイルを Bitbucket で管理・更新する話。

うちのページはファイルを Bitbucket の Git リポジトリ(プライベート)で管理している。以前はレンタルサーバの中に Subversion をインストールしてそこで管理していたのだけど少し前に引っ越した。

引っ越す前は、SSH 経由で更新用のスクリプトを実行させて、サーバ内のリポジトリから更新分をチェックアウトせさるという形で更新していたのだけど、リポジトリを Bitbucket に移行させたのを機にこのプロセスも見なおすことに。もちろんいままで同様にスクリプトを(git で更新分を引っ張ってくるように書き替えて)呼び出してもいいのだけれど。

ちなみに、なぜかいまではさくらのレンタルサーバでは最初から git コマンドが使える。

GitHub、Bitbucket のコミット(プッシュ)時のフックに登録してそのサーバの(公開用の)Git 作業コピーを更新するという PHP スクリプトが GitHub にあったのでそれを試してみる。

Bitbucket 用と GitHub 用のふたつのスクリプトがあります。ちなみに名前の通りリポジトリの種類は Git のみ。Mercurial は使えない。

これをレンタルサーバの公開用ディレクトリのどこかに展開。そのあと Bitbucket のコンテンツを格納しているリポジトリの設定で “Hooks” に POST フックとしてその URL を貼る。

これで手元の作業コピーから変更をプッシュすると自動的にレンタルサーバのコンテンツもアップデートされるようになった。めでたしめでたし。

2015-02-14 追記: その後気づいた点。当たり前かもしれないけど、Bitbucket のほうでマージしただけじゃフックは呼び出されないね。あくまでコミットで動く。