2017-12-18 3 views
3

매우 실망 스럽습니다 나는 이것의 예를 찾을 수 없습니다. 기본 선택을 어떻게 설정합니까?젠킨스 파이프 라인에서 기본 선택을 어떻게 설정합니까?

parameters { 
    choice(
     defaultValue: 'bbb', 
     name: 'param1', 
     choices: 'aaa\nbbb\nccc', 
     description: 'lkdsjflksjlsjdf' 
    ) 
} 

여기서 defaultValue는 유효하지 않습니다. 선택 사항을 선택하고 파이프 라인이 수동이 아닌 (커밋을 통해) 실행되는 경우 기본값을 설정해야합니다.

답변

3

옵션에 기본값을 지정할 수 없습니다. choice 입력에 대한 설명서에 따르면 첫 번째 옵션이 기본값이됩니다.

잠재적 인 선택 사항, 한 줄에 하나씩. 첫 번째 행의 값이 기본값입니다.

당신은 documentation source에서 볼 수 있으며, 또한이 source code에 어떻게 호출됩니다. mkobit에서 언급 한 바와 같이는 defaultValue 매개 변수를 사용하여 가능하지 않는 것

return new StringParameterValue(
    getName(), 
    defaultValue == null ? choices.get(0) : defaultValue, getDescription() 
); 
+0

흥미 비 대화식 param으로합니다 선택 이전에 따라 선택의 목록을 다시 정렬 .param1이 첫 번째 선택이거나 null일까요? – red888

+0

@ red888 제 이해는 스크립팅과 선언 모두에 대한 첫 번째 가치입니다. 아직이 답변을 테스트하지는 못했지만 [JENKINS-35698 - 매개 변수화 된 파이프 라인 빌드를 초기화하면 속성 기본값을 반환해야 함 _] (https://issues.jenkins-ci.org/browse/JENKINS) -35698). – mkobit

0

, 대신 나는 그것의 트리거 그래서 만약

defaultChoices = ["foo", "bar", "baz"] 
choices = createChoicesWithPreviousChoice(defaultChoices, "${params.CHOICE}") 

properties([ 
    parameters([ 
     choice(name: "CHOICE", choices: choices.join("\n")) 
    ]) 
]) 


node { 
    stage('stuff') { 
     sh("echo ${params.CHOICE}") 
    } 
} 

List createChoicesWithPreviousChoice(List defaultChoices, String previousChoice) { 
    if (previousChoice == null) { 
     return defaultChoices 
    } 
    choices = defaultChoices.minus(previousChoice) 
    choices.add(0, previousChoice) 
    return choices 
} 
관련 문제