1

我会在 git 存储库中安装一个接收后挂钩,以构建模块并将其安装到一些自定义测试区域。这个想法是测试区域将始终反映 repo 中的最新代码。

钩子将:

  1. 克隆/拉取代码到 tmp 空间
  2. 构建模块
  3. 将模块安装到测试区域

开发人员通过 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。有没有办法让钩子在安装完成之前退出?

4

1 回答 1

1

使用http://en.wikipedia.org/wiki/Continuous_Integration,例如 Jenkins。

于 2012-09-11T20:28:47.593 回答