2010-04-27 2 views
1

소스 제어 블록을 실행하고 소스를 로컬 작업 디렉토리에 다운로드하기 전에 프로그램을 실행하려고합니다. prebuild 작업은 이후에 실행되고 tasks 블록은 이후에 실행됩니다. 나는 문서를 쏟아 부었지만 그것을 이해할 수는 없다.소스 블록 전에 작업을 실행하십시오. cruisecontrol.net 1.5

결국 코드를 ​​검색하기 전에 실행되는 실행 파일을 작성했습니다. 그때조차 그것은 약해졌습니다. 그래서 자동화 된 품질 관리로 전환했습니다.

답변

1

내가 아는 한 그것이 옵션이 아닙니다. 지속적인 통합의 목적은 최신 코드를 얻은 다음 빌드를 수행하는 것입니다. 일부 유형의 정리 (파일 h 제)를 수행해야하는 경우, 빌드가 끝날 때이를 수행해야합니다. 이렇게하면 다음 빌드가 시작되기 전에 이미 원하는 상태가됩니다.

+0

만약 옵션이 아니라면, 마지막에 그것을 수행하는 것이 가장 좋은 해결책 일 수 있습니다. 감사! –

+1

... cleanup ... 작업이 에 있는지 확인하여 빌드가 실패했는지 또는 성공하는지 여부를 확인합니다. – xanadont

0

Prebuild는 소스 컨트롤이 실행되기 전에 실행합니다. 소스 제어 블록 다음에 오지만 여전히 먼저 발생합니다. 다음은 내가 사용한 예입니다.

<cb:define subversionpath="c:\Program Files\Subversion\bin\svn.exe" 
/> 

<cb:define name="svn50"> 
<executable>$(subversionpath)</executable> 
<workingDirectory>D:\Projects\B50\Source</workingDirectory> 
<trunkUrl>svn://machineName/branches/B_50/Source</trunkUrl> 
<autoGetSource>true</autoGetSource> 
</cb:define> 

<project name="StreamlineCheckBuild" queue="B50"> 
<triggers> 
    <intervalTrigger seconds="180" /> 
</triggers> 
<sourcecontrol type="svn"> 
    <cb:svn50/> 
    <deleteObstructions>true</deleteObstructions> 
    <forceUpdate>true</forceUpdate> 
</sourcecontrol> 
<prebuild> 
    <exec> 
    <executable>$(subversionpath)</executable> 
    <buildArgs>cleanup</buildArgs> 
    <baseDirectory>D:\Projects\B50</baseDirectory> 
    </exec> 
</prebuild> 
<tasks> 
... 
</tasks> 
</cruisecontrol> 
+0

아니, 적어도 ... type = "git"어쨌든. – xanadont

1

미리 작성한 다음 간단한 명령을 시도했습니다. 원본 블록보다 먼저 실행되는 것을 볼 수 없습니다.

<prebuild> 
<exec> 
    <executable>cmd</executable> 
    <buildArgs>"/c MD C:\build\1.4"</buildArgs> 
</exec> 
.. 
</prebuild> 
관련 문제