개발 환경 개선 : Batch Build 만들기

http://wahnfried.net













 조엘 아저씨가 말했죠. "일일 빌드를 하세요." 라고. 일정에 쫒기는 업무환경상 일일 빌드라는 건 습관의 저 너머로 잊혀진 지 오래고, 사실 업무 특성에 따라서는 굳이 필요하지 않을 수도 있습니다만, 빌드+업데이트 과정을 단순화 하자는 취지에서 Batch Build 환경을 만들어보기로 했습니다. 따지고 보면 Batch Build 가 아니라 Build Batch 가 되겠군요;;







-  무얼로 만들까?

 일단, 우리 프로젝트에서는 one - source로 여러 언어 버전과 서비스를 관리하고 있습니다. 때문에 Visual Studio 에서 지원하는 빌드 후 이벤트를 사용해서 이런 저런 필요한 작업을 자동으로 빌드된 이후에 수행하도록 하고 있구요. (스크립트 등을 이용한 빌드 후 이벤트 제작은 포스트에 첨부한 Microsoft Windows Script Host Guide 를 참조하세요) .. 해서 되도록이면 기존 Visual Studio 에서 솔루션을 빌드하는 틀과 크게 차이가 없는 방식으로 빌드를 하는 편이 좋겠다고 생각했습니다.

(사족 : 물론 빌드 후 이벤트 없이도 콘솔에서 스크립트를 실행하는 건 가능하지요)



 <첨부 : Microsoft Windows Script Host Guide>

 



 예전, 초보 시절에 일하던 프로젝트에서는 예쁜 빌드툴을 만들어서 빌드를 하기도 했는데, 일단은 여러 귀차니즘 때문에 그냥 배치파일로 짜 버리자- 라고 생각했습니다. 검색을 해 보니 아주 간단한 방법도 있고 말이지요.







- Visual Studio 용 빌드 배치파일 만들기

 결과물은 다음과 같습니다.



@ECHO OFF

SETLOCAL

:여기에는 Visual Studio 경로를 적어주세요. devenv.com 이라는 점을 주의!
:MSDEV라는 키워드에 경로를 설정해줍니다.

SET MSDEV="C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE\devenv.com"

@ECHO ON

:빌드를 시작합니다. 아래의 Release 라고 적어둔 부분은 Debug/Release 등
:기타 프로젝트 옵션에서 정해 둔, 빌드할 구성 이름을 적으면 됩니다.
:아래대로라면 같은 경로 내에 있는 모든 솔루션들을 다 빌드하게 되겠네요.

@for %%i in (*.sln) do %MSDEV% /build Release "%%i"

:더 필요하다면 이 아래에다가

@for %%i in (*.sln) do %MSDEV% /build Debug "%%i"
@for %%i in (*.sln) do %MSDEV% /build XXXXX "%%i"

:
:
:

:라고 적어서, VS 의 일괄 빌드처럼 사용할 수도 있겠습니다.

@ECHO OFF

ENDLOCAL
PAUSE



 텍스트로 로그를 남기도록 해서 예쁜 UI까지 있는 툴을 만든 분도 계시더군요. 그분의 블로그는 아래에 링크해두도록 하겠습니다. 업데이트용 소스 경로에다가 이 배치와 함께 NSIS 스크립트까지 실행하도록 만들어 두고 원클릭에 해결되도록 설정을 해 두니 일이 훨씬 편해지네요 :-)



UI 툴까지 만드신 분
 http://blog.naver.com/zbaekhk/37026934