gitolite 자동 배치

1668 단어

gitolite 자동 배치


gitolite 설치 본 강좌는 결합rsync으로 완성된 자동 배치

수정.gitolite.rc(서버)


아래의 이 두 줄을 찾아서 이 두 줄의 주석을 없애다

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

repo-specific-hooks


클론은 자동으로 배치된 코드 라이브러리를 준비하고 디렉터리를 /test로 지정합니다.git/repo/


git clone [email protected]:xxxx.git /test.git/repo/


클론 관리 코드(gitolite-admin)


다음 수정은 모두 로컬 개발자에서 조작한다

git clone git@host:gitolite-admin.git


conf/gitolite를 수정합니다.conf


증가option hook.post-receive= deploy
@devs = admin

repo mysite
    option hook.post-receive= deploy
    RW+    =  @devs


자동 배포 스크립트 만들기

  • 로컬 gitolite-admin 루트 디렉터리에서 먼저 local/hooks/repo-specific/ 디렉터리
  • 만들기
  • 이전에 만든 디렉터리에서 deploy라는 파일의 스크립트를 만듭니다.
  • deploy 내용은 다음과 같습니다.
    #!/bin/sh
    
    set -x
    unset GIT_DIR
    NowPath=`pwd`
    
    GIT_REPO="/test.git/repo/"
    DEV_DEST="/dest/dev/"
    WWW_DEST="/dest/www/"
    
    while read oldrev newrev ref
    do
      branch=`echo $ref | cut -d/ -f3`
      echo "--- Current branch is : "$branch
    
      if [ "master" == "$branch" ]; then
         dest=$WWW_DEST
      fi
    
      if [ "dev" == "$branch" ]; then
        dest=$DEV_DEST
      fi
    
      if [[ "dev" == "$branch" || "master" == "$branch" ]]; then
        cd $GIT_REPO
        git checkout $branch
        git pull origin $branch
        sudo /usr/bin/rsync -av --delete $GIT_REPO $dest --chown=www:www --exclude=.git
      fi
    done
    
    cd $NowPath
    exit 0
    
    

    좋은 웹페이지 즐겨찾기