2011-11-29 3 views
6

10 분마다 표준 폴을 사용하여 지속적인 통합을 위해 젠킨스를 사용하고 있으며 정상적으로 작동합니다.jenkins가 subversion 저장소의 모든 개정판을 빌드하려면 어떻게해야합니까?

이제 repro의 모든 개정판에서 실행되는 작업을 설정하려고합니다. 특정 커밋에 해당하는 바이너리 패치를 생성합니다.

내가 알아 낸 유일한 방법은 svnserver에서 post-commit hook을 사용하여 jenkins 서버에서 작업을 대기열에 넣는 것입니다.하지만 방화벽에서 새 구멍을 요구하기 때문에 그렇게하지 않을 것입니다. 젠킨스 (jenkins)는 대기중인 모든 작업을 하나로 축소한다고 생각합니다.)

+0

이것은 CruiseControl.Net에서 가능합니다. 그러나 젠킨스 (Jenkins)의 해결책을 발견하는 데 매우 관심이 있습니다! –

답변

3

본인 스스로 시도하지는 않았지만 다른 빌드를 사용하여 서브 버전 빌드를 트리거 할 수 있습니다.

예를 들어 Subversion 저장소에서 10 분마다 표준 폴링을 수행하는 빌드를 설정할 수 있습니다. 그런 다음이 빌드를 사용하여 마지막으로 발생한 모든 새 개정 번호를 판별하십시오. 그런 다음 다중 매개 변수화 된 빌드 (각 개정판마다 하나씩)를 큐에 넣습니다.

이 작업을 수행하는 방법은 다양하지만 필자는 마스터 빌드를 사용하여 모든 수정 버전을 계산하는 데 파이썬 빌드 단계를 사용하고 보조 빌드를 대기열에 넣으려는 경우 parameterized trigger plugin을 사용할 것입니다.

이 마지막 단계는 여러 빌드를 큐에 넣을 수있는 플러그인을 모르기 때문에 약간 지저분 할 수 있습니다. 이것은 무차별 적이지만 일련의 빌드 변수 (SVN_REV_1, SVN_REV_2, ...)를 설정하고 몇 가지 트리거 (잠재적 변수 각각에 하나씩)를 설정할 수 있습니다. 당신이 그 중 더 많은 것을 가지고있는 한 당신은 새로운 개정판으로 왔습니다. (참고 :이 작업을 수행하는 더 좋은 방법이있을 수 있습니다)

그 중 하나라도 놓치지 않도록하려면 분당 투표를 늘리십시오. 우리는 빌드 중 하나에 대해 비슷한 것을 수행하고 폴링로드가 더 자주 문제가되지 않았습니다.