2017-07-10 3 views
2

gitoliteを使用して、現在のマスターおよび/またはブランチを/ var/www/html/repositorynameに自動的にリリースする方法はありますか?/var/www/html/repositorynameへのGitoliteリリースマスター?

シンボリックリンクを設定しようとしましたが、gitoliteリポジトリが.gitディレクトリ以外のファイルをパッケージ化していることに気付きました。

この種の問題では、ポストフックの作成が推奨されていましたが、私のケースに適したアプリケーションを見つけることができませんでした。ポストフックを作成

答えて

1

は、この種の問題のための1つの提案された解決策だったが、私は私の場合に適したアプリケーションを見つけることができませんでした。

はい、post-receiveフックが推奨されます。
インスタンスを参照してください "GIT post-receive checkout without root folder" という除き

、gitoliteで、あなたが今repo specific hookを持っています。それが既に存在し、コメントアウトかどう
見る「repo-specific hooks

は、それがまだ存在しない場合は、%RCブロック内で、rcファイルに次の行を追加、またはそれをアンコメント:

LOCAL_CODE => "$rc{GL_ADMIN_BASE}/local", 

rcファイルの 'repo-specific-hooks'行のコメントを解除するか、存在しない場合はENABLEリストに追加します。

ファイルにENABLEのリストがない場合は、これをPOST_COMPILEPOST_CREATEのリストに追加する必要があります。
Click hereこの詳細については、

put your hooks into your gitolite-admin clone, as follows: 

# on your workstation 
cd /path/to/your/gitolite-admin-clone 
mkdir -p local/hooks/repo-specific 

さて、 "RSS-post" をそのディレクトリにあなたのフックを追加し、代わりにgitの "標準" 名(pre-receivepost-receivepost-update)を使用して、あなたは説明的な名前(例えば "deploy" を使用、など)。

あなたのconfファイルでアクティブにしたいreposにそれらを追加します。たとえば:

repo foo 
    option hook.post-update  = jenkins 
repo bar @baz 
    option hook.post-update  = deploy RSS-post 

追加、コミット、および管理者のレポを押してください。

+0

これは非常に便利です!どこで/ var/www/html/reponameへのパスを定義するのですか? – Thodi

+0

@Thodiあなたのフックスクリプトでは、https://stackoverflow.com/a/15930178/6309で表示されているように 'git --git-dir =/path/to/project_root/.git --work-tree =/path/to/website/httpdocs checkout -f':あなたが言及したパスで2番目のパスを置き換え、gitoliteによって管理される裸のrepoパスによって最初のパスを置き換えます。 – VonC

関連する問題