Windows VisualSVN Commit 자동 deploy 연동

SVN commit 하면 로컬 웹서버 경로 update 해주는 설정법

SVN 저장소는 고유의 형태로 SVN서버에 저장되고 Update 받지 않으면 웹서버의 소스 디렉토리는 갱신되지 않는다.

VisualSVN 안에 post-commit hook 기능을 활용해서 자동으로 웹 서버에도 반영 되도록 하는 방법을 살펴 보겠다.

1. VisualSVN Server을 실행
VisualSVN post-commit 설정1

2. VisualSVN 관리자에서 Repository(저장소)를 생성
VisualSVN post-commit 설정2

3. 자동업데이트를 위한 계정 생성
(webUpdater svn 사용자 계정 add)
VisualSVN post-commit 설정3

4. 저장소에서 마우스오른쪽을 누른 뒤 위 스샷과 같이 Manage Security 선택
VisualSVN post-commit 설정4

5. (2)에서 만들었던 자동업데이트 계정을 Add 하고 Read/Write 권한 부여
VisualSVN post-commit 설정5

6. 탐색기(Win+E)에서 웹서버 경로를 SVN 저장소 Checkout 경로로 설정 후 보안 설정.
(이미 웹서버 경로이면서 동시에 SVN workout 경로이면 보안 설정만 하면 된다.)
웹 서버 루트에 레파지토리의 저장소를 체크아웃을 받음

ex)

1
svn checkout http://localhost:8443/svn/test/ C:\inetpub\wwwroot\test

VisualSVN post-commit 설정6

7. 위 스샷에서 보여지는것과 같이 Network Service 에 수정 권한 부여
(VisualSVN 사용 계정 = Network Service)
웹 루트 디렉토리에 아래 보안 설정 NETWORK SERVICE 추가
공유 및 보안 > 보안 > 수정 > 추가 > 고급 > 지금 찾기 > NETWORK SERVICE 선택 추가
수정 권한 필시 체크
VisualSVN post-commit 설정7

8. VisualSVN 관리자로 돌아가서 저장소 마우스 오른쪽 후 Manage Hooks 선택
VisualSVN post-commit 설정8

9. 이후 뜨는 창에서 Post-commit hook 더블클릭 또는 아래 Edit 버튼 클릭

10. 아래와 같이 .bat 커맨드 입력
SVN과 웹 동일 서버 상에서 Repositery경로/hooks/post-commit.cmd 를 텍스트 편집기로 아래와 같이 수정 후 저장.

1
2
3
4
5
6
7
@echo off

SET WORKING_COPY="C:\inetpub\wwwroot\test"

"VisualSVN Server 경로\bin\svn.exe" update %WORKING_COPY% --username webUpdater --password 암호 --non-interactive --trust-server-cert

REM --trust-server-cert 옵션은 https 인증 오류시 붙임. 인증서 설치된 서버는 생략.

WORKING_COPY 경로는 (개발) 웹사이트 루트인데 저 경로에서 최초 SVN import 후 checkout 해 놓은 후 위 post-commit hook 내용과같이 svn update 하면 클라이언트에서 svn commit 을 수행하면 svn repositery 에 전달되고 수정본이 WORKING_COPY 경로에 반영되어 수정된 웹페이지를 곧바로 볼 수 있다. (FTP 접속하여 수정한 파일을 덮어쓴 효과)

11. OK 버튼 누르면 완료

만약 commit 후 cleanup 하라는 오류 뜨면 (10)에서 update 커맨드 위에

1
"VisualSVN Server 경로\bin\svn.exe" cleanup  %WORKING_COPY% --username webUpdater --password 암호 --non-interactive --trust-server-cert

참조

공유하기