2013-06-16 2 views
2

젠킨스와 젠 슬레이브를 통합하는 가장 좋은 방법은 무엇입니까? 전체 플러그인을 작성하지 않고도이 작업을 수행 할 수 있습니까? 내가 갈 수있는 단축키가 있니? 나는 복제에 가장 관심이있다 :젠킨스와 젠장 슬레이브 통합

(1) git-slave git 저장소 또는 그 자식에 대한 변경을 기반으로 빌드를 폴링하고 시작하기.

(2) 이전 빌드 이후 모든 저장소에서 커밋을 인쇄합니다.

다른 사람이이 영역에서 아무 것도하지 않는지 확인합니다. 나는 다른 다중 저장소 방법 (즉, 자식 서브 모듈, 자식 하위 트리)보다 평균 scm 사용자에 대해 오류가 적은 것처럼 보이기 때문에 자식 종속을 좋아합니다. 그 repo에는 플러그인이 있지만 불행히도 repo는 gerrit와 너무 밀접하게 연결되어 있습니다.

+0

우리는 우리 집에서 많은 gitslave를 사용했습니다. 그러나 Jenkins에서 gitslave를 무시하고 대신 여러 SCM 플러그인을 사용했습니다. https://wiki.jenkins-ci.org/display/JENKINS/Multiple+SCMs+Plugin –

답변

2

젠킨스의 더 자세한 지식없이, 나는

(1) 폴링과 자식 노예의 자식 저장소로 변경 또는 그 자녀를 기반으로 빌드를 시작하는이

당신이해야합니다에 대한 추측 것 한쪽 끝 또는 다른 쪽 끝에 플러그인을 작성하십시오. Jenkins 플러그인을 작성하고 싶지 않으면 Git 포스트 수신 훅 또는 그와 비슷한 것을 작성해야합니다. 그러면 Jenkins가 repo (또는 슬레이브 일 경우 부모) 빌드를 트리거 할 수 있습니다. 폴링 오버 헤드를 제거하기 때문에 수신 후 연결을 설정하는 것이 더 좋을 수 있으며 this question은이를 수행하는 블로그 게시물에 대한 링크를 제공합니다. 대한

(2) 이전 빌드

가장 가능성있는 방법 이후의 모든 저장소에 커밋을 인쇄하는이 완료되면/어린이 gits tag를 사용하여 젠킨스는 REPO 노예에 태그를 넣어 빌드있을 것 같다 것 빌드 한 다음 gits log $last_build_tag..HEAD과 같은 것을 사용하여 해당 빌드 이후 모든 커밋을 표시합니다. 태그를 재활용하는 것을 권하지 않고 여러 타임 스탬프가 적용된 태그 (예 : jenkins-build-2013-06-19-10-24)를 사용하고 git tag | sort -nr | sed '/jenkins-build/q'의 출력에서 ​​$ last_build_tag를 가져옵니다. gits tag을 아마도 사용하지 않아도됩니다. Jenkins 태그는 모든 repos에 대해 동일합니다.

이러한 태그는 확실히 태그 공간을 어수선하게 만들 것이며, 이상적으로는 다른 태그를 끌어 당기는 repo에서 이러한 태그를 만들면 이러한 태그를 푸시하지 않고 다른 모든 repos를 엉망으로 만들 수 있습니다.