2009-06-10 3 views
4

Subversion 커밋 후크에서 Cruise Control.net 빌드를 트리거하는 방법을 찾고 있습니다.Trigger Cruise Control.net post-commit 후크를 사용하여 빌드

커밋 바로 다음에 빌드를 시작하고 싶습니다. 이 작업을 수행하는 일반적인 방법에 대해 알고 있지만 서버를 폴링 할 때 서버를 폴링하지 않아도됩니다.

대시 보드의 "강제 빌드"기능을 호출하는 것이 좋겠지 만 모든 수정 사항이 트렁크 경로 트리 외부에 있어도 빌드를 트리거하므로 빌드를 보증하는 수정이 이루어지지 않은 경우에도 빌드가 트리거됩니다.

답변

0

"강제 빌드"사용에 대한 귀하의 생각이 효과적 일 것입니다.

비록 트렁크 경로 트리 외부의 수정에 대한 걱정이 있습니까? 포스트 커밋 후크에서이를 확인할 수 없으며 수정 된 파일이/트렁크 아래에있는 경우에만 빌드를 강제로 수행 할 수 없습니다.

이렇게하는 것이 단점으로 생각하십니까?

두 개의 변경 집합이 있습니다. 변경 집합 1을 적용하고, 빌드를 시작하고, changeset2를 커밋하고, 다른 빌드가 빌드 변경/테스트를 시작하기 전에 빌드/테스트가 완료되기를 기다려야합니다.

+0

에 커밋 (코멘트에 고정 오타) 나는 단점으로 간주 한 그러나 나의 전형적인 시나리오 (작은 팀, 상대적으로 빠른 빌드)는 더 커질 것이다. 빌드를 집계하면 어떤 개정이 빌드를 파기했는지 알기가 더 어려워집니다. – FkYkko

1

CC.NET이 사용하는 이유는 바로 변경 사항입니다. 폴링 메커니즘 (사실, 빌드에 여러 개발자의 새로운 변경 사항을 포함시키는 것이 바람직한 시나리오가있을 수 있습니다.)

"강제 빌드"기능은이 작업을 수행하기 위해 생각할 수있는 유일한 메커니즘이며, 그러나 트렁크에서 포스트 커밋 후크가 적절한 필터 설정을 통해 파이프 된 svn 로그 (가능하면 상세 로그)를 수행해야하는 변경을 원할 경우에만 필요하면 "강제 빌드"를 트리거하십시오.

+0

실제로 'svn log'대신 svnlook은 현재 커밋에있는 파일들만의 목록을 제공합니다. 그런 다음 목록에/trunk/문자열을 grep 할 수 있습니다. 나는 그것을 사후 커밋 중 하나에서한다. – james

0

나는이 작업을 권장하지 않지만, 정말로 원한다면 URL trigger으로 시작합니다.

URL 트리거는 변경 사항에 대한 모든 URL을 모니터링하므로 게시 커밋 훅으로 html 파일을 업데이트 할 수 있습니다. 당신이 viewvc를 사용하는 경우 또는, 당신이 다음과 같은 URL을 모니터링 할 수 :

URL이 모든 후 업데이트 얻을 것이다
http://servername/viewvc/repos?view=rev&revision=HEAD 

가 SVN

+0

URL 트리거를 사용하는 것은 기본적으로 표준 수정 트리거를 사용하는 것과 같습니다. 여전히 폴링 작업입니다. Btw, 나는 아마 어느 쪽도하지 않을 것이다. – FkYkko