참고 소스: http://dev.naver.com/projects/sdp/src
trunk를 내려 받으면 맨 위에 autobuild.cmd 파일이 하나 있다. 빌드 자동화는 이 파일을 실행했을 때 deploy 폴더에 셋업 파일이 생성되도록 구성한다.
지금은 아래처럼 간단히 구성되어 있다. 리비전3 기준
autobuild.cmd
|__> build\build.cmd
|__> make_setup.cmd
|_ copy setupfile to deploy folder
|_ copy debugging pdb file to deploy folder
프로젝트 규모가 클 경우, 버전파일 관리, 각종 데이타 파일 관리, 코드사인 관리 등이 추가되어 스크립트는 훨씬 복잡해 질 수 있다.
모든 실행 단계마다
if not "%ERRORLEVEL%" == "0" goto ERROR
를 추가하여 에러체크를 하도록 한다.
autobuild.cmd의 코드는 아래와 같다.
cd build
call build.cmd rebuild
if not "%ERRORLEVEL%" == "0" goto ERROR
cd ..
goto OK
:ERROR
@echo "autobuild.cmd Error"
@exit /b 1
:OK
@echo "All Success"
@exit /b 0
셋업 파일이 생성됬을 경우 날짜별로 셋업파일과 pdb 파일을 백업하도록 한다.
copy EasyRegistrySetup.exe ..\deploy /Y
copy EasyRegistrySetup.exe ..\deploy\EasyRegistrySetup_%date%.exe /Y
::backup pdb file
copy ..\src\Release\EasyRegistry.pdb ..\deploy\EasyRegistry_%date%.pdb /Y
현재는 제품의 버전을 얻어오는 것이 안되어 있어 날짜로 했지만 나중에 버전별로 셋업파일이 생성되록 고쳐보도록 하겠다.
bat 파일에서 주석은 :: (콜론 2개)를 맨 처음에 사용하면 된다.
autobuild.cmd를 실행하면 프로젝트가 전체 rebuild 되고, build.cmd를 실행할 경우 프로젝트의 상태가 최신이면 컴파일하지 않는 build만 하도록 구성했다. 프로젝트 rebuild에 30분 이상 걸리는 경우도 있었다. 이런 경우 빌드 테스트를 할 때마다 프로젝트를 rebuild 하는 것은 효율적이지 못하고, 공식적인 배포본이 아닌 팀 내 테스트 빌드가 필요한 경우 빠르게 빌드를 만들 수 있다.
set option=build
if not "%1" == "" set option=%1
"%VS90COMNTOOLS%/../IDE/devenv" "..\src\EasyRegistry.sln" /%option% "Release"
if not "%ERRORLEVEL%" == "0" goto ERROR