2016-08-30 5 views
0

나는 4 가지 Jenkins 작업이 있습니다. 모두 실행 중일 때이 순서대로 실행되어야하는 , B, CD입니다.
는 내가 매개 변수가 트리거 흐름을보기 위해 주문 순서 및 파이프 라인 플러그인을 설정하는 플러그인을 사용하지만, 난 여전히 할 수있는 기능이 원하는 : 특정 작업에서 실행할 수 1Jenkins는 순서대로 작업을 순서대로 실행합니다.

1. Run only Job A 
2. Run only jobs B and D 
3. Run from job A (according to sequence) 
4. Run from job C (according to sequence) 

항목,
항목 3 및 4는 파이프 라인보기에서 실행할 수 있습니다 (더 좋은 방법이 있습니까?)
하지만 항목 2는 어떻게됩니까?

현재이 4 가지 작업이 있지만 미래에는 더 많은 조합을 의미하는 작업이 더 많아서 일반적인 솔루션을 찾고 필요한 모든 조합에 대한 코드 작성을 피할 수 있습니다.

P. 내가 작성한 항목 하나 하나를 실행하고 각각을 실행하는 다른 방법이없는 한 곳을 가질 수있는 방법이 있습니까?

답변

0

당신은 Multijob Plugin를 사용하고 당신이 MultiJob 단계에 4 개 다른 작업을 추가 Multijob (예를 들어 Run all)를 만들 수 있습니다. 순차적으로 실행하려면 작업 실행 유형 ~ 순차적으로 작업 실행을 구성해야합니다.

이러한 작업을 추가하는 데 필요한 각 시퀀스에 대해 MultiJob을 만들 수 있습니다 (Run B and D).

+0

Multijob 또한, 순서 LL 작업을 실행 할 수 있지만 작업 C에서 시작 예를 들어 나는 할 수 없습니다 모든 가능한 조합에 대해 Multijob 작업을 만들고 싶지 않기 때문에 더 일반적인 솔루션을 찾고있었습니다. D & E 작업을 추가하면 많은 Mutijobs 작업을 만들어야합니다. – Epligam

+0

그렇다면 왜 여러 조합을 가지고 있으며 매번 한번씩 조합을 실행하지 않는 이유는 무엇입니까? – SevenEleven

0

사용하여 개인적으로 다른 일을 좀 할 것 파이프 라인 : 대신 ABCD 작업 나는 파이프 라인 기능, 예를 들어, 이러한 네 단계를 정의 할 데의 :

functions.groovy

다음
def A() { 
    stage "A" 
    // doAjob 
} 

def B() { 
    stage "B" 
    // doBjob 
} 

... 

당신의 품목이이 같을 것이다 그래서, 당신의 "항목"1234 각각에 대한 작업을 만들 것입니다 :

jobItem2.groovy

node() { 
    def functions = load 'functions.groovy' 
    // Now just call declared functions 
    functions.B() 
    functions.D() 
} 

등등.

물론 A (특정 작업으로 시작될 수 있음)를 특정 작업으로 선언하고 작업과 기능을 혼합 할 수 있습니다. 이러한 혼합으로 귀하의 항목 3은 다음과 같이 수 :

jobItem3.groovy을

node() { 
    // Call A as a job 
    build 'A' 

    // Call other steps as functions 
    def functions = load 'functions.groovy' 
    // Now just call declared functions 
    functions.B() 
    functions.C() 
    functions.D() 
} 
관련 문제