2012-11-05 1 views
0

안녕이 내 SVN 구조입니다 :SVN : 하위 분기로 단계를 설정하는 방법

TRUNK 
BRANCH 
    --STAGING 
TAGS 
    --tag1 

그래서 여기에 목표는 모든 변경 사항 생산을위한 준비 "STAGING"하위 분기에 한 번 모든 개발을하는 것입니다 이 tag1로 통합 및 트렁크 (생산)

을 롤백 할 수 wiill 어떻게

여기 서버 폴더 stucture

볼 수 있습니다 생산 및으로 public_html의 준비에 준비를 public_html을 할 수있는 트렁크를 설정할 수 있습니다3210
/var/svn/projects/ (trunk, branch and tags are here) 

/home/production/public_html <--- producction 
/home/staging/public_html <-- staging 

스테이징에 커밋을 한 경우 스테이징 웹 사이트에 게시 될 때 좋겠습니다.

답변

0

Jenkins을 살펴보십시오. 이것은 연속 빌드 시스템이지만 Subversion URL을보고 변경 작업을 수행하는 것 중 하나입니다. 예를 들어 스테이징 분기가있을 수 있으며 젠킨스가 변경 사항을 감지하면 서버의 해당 분기에서 파일을 체크 아웃하거나 내보낼 것입니다.

가장 쉬운 방법은 Jenkins를 준비 서버에서 실행하는 것입니다. Jenkins는 최소한의 리소스 만 사용하므로 문제가되지 않습니다. Jenkins에서 작업을 설정하여 준비 URL을보십시오. 작업의 작업 디렉토리가 준비 영역의 웹 사이트 URL이되도록 작업을 설정하십시오. (이것은 작업 자체에서 쉽게 구성 할 수 있습니다). 그런 다음 Jenkins가 준비 URL을 변경하면 준비 영역이 업데이트됩니다.

더 좋은 아이디어는 두 개의 디렉토리를 갖는 것입니다. 실제 스테이징 디렉토리와 다음 스테이징 영역 인 다른 디렉토리가 있습니다. Jenkins는 다른 디렉토리에 svn export을 수행 한 다음 이전 스테이징 디렉토리를 이동하고 새 디렉토리를 스테이징 디렉토리로 이동시킬 수 있습니다. 이렇게하면 Jenkinds가 업데이트를 수행하므로 준비 디렉토리가 일관성없는 상태가되지 않습니다. 더 나아가 Jenkins는 새로운 스테이징 영역을 이동하는 과정에서 서버를 위아래로 이동할 수 있습니다.

젠킨스는 오픈 소스이며 무료입니다. 설정도 쉽습니다. 자체 웹 서버가 포함 된 단일 jar 파일입니다. java -jar jenkins.war을 실행하면 서버의 포트 8080에서 실행됩니다 (포트는 매개 변수를 전달하여 쉽게 변경할 수 있음). 다른 모든 것은 꽤 자명하다. 새로운 직업 링크를 클릭하고 양식을 작성하십시오.