2012-05-16 2 views
3

2 개의 Jenkins 슬레이브에 1 개의 마스터가 있습니다 (3 기계). 예 : Slave1 및 Slave2. 나는 두 가지 일자리를 가지고 있으며 일자리를 노예에 묶는 데 라벨을 사용했습니다. 예를 들어, Job1은 Slave1에 바인드되고 Job2는 Slave2에 바인드됩니다. 둘 다 프리 스타일 작업입니다. Job1과 Job2 만 호출하는 프리 스타일 작업을 만들어서 동시에 노예에서 실행합니다. 두 작업이 항상 동일한 빌드 번호로 빌드하거나 업스트림 작업의 빌드 번호를 상속 받고 싶습니다. 주 작업의 빌드 번호를 두 개의 다운 스트림 작업으로 보낼 수있는 방법이 있습니까? Job1과 Job2의 빌드 번호가 동기화되지 않게하는 것을 방지하고 싶습니다.Jenkins의 마스터 작업에서 다운 스트림 작업의 빌드 번호를 설정하십시오.

+0

하나의 작업이 단독으로 실행되는 것을 방지해야하는 이유는 무엇입니까? 업스트림 작업에서 빌드 번호를 상속하면 이전 개별 실행과 중복되는 업스트림 빌드 번호로 끝나기 때문에 다운 스트림 빌더의 개별 실행을 허용하는 경우에만 고통이 더 커집니다. – Amber

+0

@Amber 이것을 사용합니까? '빌드 사용 안 함 (프로젝트가 다시 사용될 때까지 새로운 빌드가 실행되지 않습니다.)'? 그게 내가 할 수있는 유일한 방법이야 ... –

답변

2

Jenkins Java API에 방법이 있습니다. Job::updateNextBuildNumber(int)입니다. 따라서 다음을 시도 할 수 있습니다. 시스템에서 그루비 스크립트 (Groovy Plugin을 통해 실행할 수 있음)는 하위 작업 객체를 찾고 위의 방법을 통해 빌드 번호를 설정합니다. 그들을 유발하십시오.

그래도 문제가 발생할 수 있습니다. 예를 들어, 이러한 작업 중 하나가 수동으로 트리거되는 경우 빌드 번호를 늘릴 수 없습니다 (빌드 번호를 늘려야 함).

관련 문제