我会在 git 存储库中安装一个接收后挂钩,以构建模块并将其安装到一些自定义测试区域。这个想法是测试区域将始终反映 repo 中的最新代码。
钩子将:
- 克隆/拉取代码到 tmp 空间
- 构建模块
- 将模块安装到测试区域
开发人员通过 gitosis 通过 SSH 连接到 repo。有什么方法可以让用户在推送数据后断开连接,这样他们就不需要坚持构建?
我试过这样的事情:
install(){
unset GIT_DIR
BARE_PATH=$PWD
REPO_BASENAME=$(basename "$BARE_PATH")
REPO_BASENAME=${BARE_PATH%.git}
cd /my/scratch/space/
if [ ! -d $REPOSITORY_BASENAME ] ; then
git clone file://$BARE_PATH
fi
cd $REPO_BASENAME
git pull
./install.sh
}
install &
这并不完全做到这一点。在上面的钩子中,它直到完成后才会退出install
。有没有办法让钩子在安装完成之前退出?