2017-01-10 1 views
0

릴리스 별 빌드 접두사에 대한 선택 상자가있는 Jenkins 빌드가 있습니다. 그것은 사람이 원하는 특정 건물의 가치에 기초한 직업을 유발하는 데 도움이됩니다.Jenkins에서 동일한 작업의 매개 변수를 기반으로 동적 매개 변수 생성

나는 그 선택 상자의 가치를 취하고 이름을 기반으로 작업을 시작하기 위해이 서버에서 일반적으로 사용되는 명명 규칙을 기반으로 올바른 접두사로 변수를 변환하려고했습니다. 트리거에 의해 접근을 시도하지 않습니다 사용되거나 특정 릴리스 기반 정보를 설정 매개 변수를 의미 그래서

의 내가 특별히 빌드 접두사 선택할 수있어 가정 해 봅시다, none를 들어 ReleaseOne ReleaseTwo none

, 비 릴리스 지정 빌드.

Release_Prefix 값을 가져 와서 나중에 필요한 작업에 맞게 변환하고 싶었습니다. 동적 매개 변수 또는 이와 유사한 메커니즘을 사용하여이 작업을 수행하기를 희망했습니다. 내 스크립트가 도청되었는지, 또는 근본적인 것이 내 의도에 맞지 않는지 확실하지 않습니다. 유사한 질문에서 언급 한 몇 가지 피드백을 기반으로 할 수 있습니다.

아래 코드 조각을 사용할 수 있습니까? 동적 매개 변수 플러그인 + GroovyScript가 아니라면 무엇을 제안 하시겠습니까? 이것은 현재 내 선택에 상관없이 아무것도 반환하지 않는 것 같습니다.

Formatted_Prefix 매개 변수, 동적 매개 변수

switch(binding.getVariables().get("Release_Prefix")) 
{ 
    case "none": 
     return ""; 
    case "ReleaseOne": 
     return "ReleaseOne_"; 
    case "ReleaseTwo": 
     return "ReleaseTwo_"; 
    default: 
     def prefix = binding.getVariables().get("Release_Prefix") 
     return "$prefix_"; 
} 

이 나는 ​​이것을 극복 할 수있는 여러 가지 방법이 있어요,하지만 난 초기 파라미터 단계에서 그것을 할 수 있다면, 그 날을 위해 최선을 다 할 것이다.

답변

1

EnvInject Plugin을 사용할 수 있습니다. 체크 박스 이 실행을위한 환경을 준비
검사는
및 는 내부 스크립트가 그루비 스크립트 텍스트 상자를

데프 prefix1 = Release_Prefix + "mydata을"
수익을 평가 하였다 쓰기 [접두사 : prefix1]

+0

감사! 이 답변을 읽는 누구에게나 참고로 - 환경 변수에 표시되는 것과 같은 새로운 _Jenkins_ 변수는 생성되지 않지만 작동합니다. 이 스크린 샷의 논리를 사용하여이 서버가 사용하는 알려진 이름 지정 규칙을 기반으로 빌드를 트리거합니다. http://i.imgur.com/Ibt0jT1.png - 작업에서 참조 할 변수는'$ {Formatted_Prefix} ', bash에서'$ Formatted_Prefix', cmd,'% Formatted_Prefix %' –

관련 문제