2012-12-11 19 views
5

GitLabをセットアップして、私のGitリポジトリをホストしています。今私がしようとしているのはpost-receiveフックをセットアップしてsite_devというフォルダに展開してから、自分の変更をプッシュしてsiteフォルダに自動的にプルされるようにすることです。GitLab PHPウェブサイトのデプロイ

いつも私はこのフックを稼働させようとしていましたが、Ubuntu Server上で実行されているGitLabでコマンドを実行していなかったので、resqueサービスが稼動しており、ワーカーがアクティブであることがわかりました。

現在、私は持っている:

#!/bin/bash 
LIVE="/var/www/teamnet" 
# read oldrev newrev refname 
# if [ $refname = "refs/heads/master" ]; then 
    echo "===== DEPLOYING TO LIVE SITE =====" 
    cd $LIVE || exit 
    unset GIT_DIR 
    git pull 
    echo "===== DONE =====" 
# fi 

は私の変更をプルしようとしています。

ここで何か問題が起きたかどうかはわかりません...すべてのフォルダは同じサーバー上の同じ場所にあります。/var/www/そしてはい、私はフックにchmod +xを走らせました。

はい、私はライブフォルダのためにgit init --bareを実行し、起源をGitリポジトリに設定しました。しかし、私はこのフックが生きているはずの/ devフォルダに少し混乱していますか?

+0

あなたの "read"がコメントに書かれている理由は? – VonC

+0

他の例のフックを見ていても、それはまったくありませんでした。私はコメントの有無にかかわらず試しました。 – James

答えて

2

GitLabで使用されているGitoliteでは、受信後のフックas VREF(そのI detail here)を宣言する必要があります。

.gitolite.rcにはLOCAL_CODE変数(this scriptを参照)が含まれていて、あなたの選択したディレクトリにVREFを保存しているとします。

次に、gitolite-adminレポのgitolite.confの1つまたは複数のレポにそのVREF(フック実行可能ファイルのみ)を関連付けることができます。 (手動で、GitLabを通してそれのためのインタフェースがないので)

+0

GitLabに関してこれを行うためのウォークスルーはありますか? :) – James

+0

@James私が知っているわけではない:私は自分自身をgitlabサーバ(どこでも)上のgitolite-adminリポジトリにクローンし、自分のmodifを作成して戻す。 – VonC

+0

さて、でも、私はこのフックをどうやって設定したのかまだ分かりません。それは、devリポジトリまたはライブのいずれか、または代わりに、サーバーに行くのだろうか? – James

関連する問題