2016-09-12 8 views
4

SVN 병합을 수행 할 가능성을 테스트 한 Jenkinsfile 스크립트를 가지고 있으며 사용자에게 병합을 커밋 할 수있는 권한을 요청합니다.어떤 사용자가 Jenkins-Pipeline 입력 단계에 응답했는지 알아 보는 방법?

커밋 메시지에 쓰려면 "입력"단계에 응답하는 사용자 이름을 알고 싶습니다.

가능성이 있습니까? source code에 했나요로,

outcome = input message: 'Merge trunk into branch?', ok: 'Merge' 
echo "User that allowed merge: ${outcome.user}" 

답변

8

input 단계는 제출있어 사용자를 포함해야합니다 반환 된 Map의 키를 지정할 수있는 옵션 submitterParameter을 얻었다 입력 대화 상자 :

지정되면이 입력을 승인 한 사용자의 ID가 포함될 반환 값의 이름입니다.
반환 값은 parameters 값과 비슷한 방식으로 처리됩니다.
유형 : 문자열

다음과 같이 다음 보이는

:

def feedback = input(submitterParameter: 'submitter', ...) 
echo "It was ${feedback.submitter} who submitted the dialog." 

PS : 사람 모두에게 긍정적이고 부정적인 의견을 사용자에게 반환 본격적인 코드에 관심이 있다면 대화 상자 (및 제한 시간도), 나는 친절하게는 our pipeline library을 가리 킵니다.

3

그것은 input step 대답에 반환됩니다 이제 입력 매개 변수의 현재 수 없습니다 :

이 내가하고 싶은 가설 것입니다

// TODO: perhaps we should return a different object to allow the workflow to look up 
// who approved it, etc? 
switch (mapResult.size()) { 
case 0: 
    return null; // no value if there's no parameter 
case 1: 
    return mapResult.values().iterator().next(); 
default: 
    return mapResult; 
} 

입력 단계를 승인 할 수있는 사용자를 제한하려면 submitter 매개 변수를 사용할 수 있습니다 (예 : :

input message: 'Approve ?', submitter: 'authorized-submitter' 

편집은 추가 매개 변수를 요청하는 것이 가능 1 월 2017 년 이후

을 확인할 수 있습니다. 위의 StephenKing answer을 참조하십시오. 당신이 groovy-sandbox의 전원을 끌 경우

+0

저런, 이것은 이미 (내 대답을 참조) 아주 좋은 –

+0

사용할 수 있었으면 업데이트에 대한 감사합니다! 귀하의 대답은 이제 허용 된 대답이되어야합니다 :-) – StephenKing

+1

:-) 그 사이에 – Pom12

1

당신은 예외이 작업을 수행 할 수 있습니다

try { 
'Deploy to production?' 

node { 
    sh 'echo deploying' 
    } 
} catch(e) { 
    def user = e.getCauses()[0].getUser() 
    echo "Production deployment aborted by:\n ${user}" 
} 
+1

을 변경했거나 샌드 박스를 끄는 대신 방법을 허용 목록에 추가했습니다. – StephenKing

+0

이 방법을 사용하면 try 블록에서 userid를 가져올 수 없습니다. – user1501382

1

입력에 대한 매개 변수를 묻지 않으면 submitterParameter를 추가하십시오. 그것은 반환 객체에 매개 변수로 추가하지 않았고 대신 반환 된 객체를 사용자 이름이 들어있는 문자열로 바꿨습니다.

def feedback = input(submitterParameter: 'submitter') 
echo "It was ${feedback} who submitted the dialog."