2015-02-06 6 views
1

내 작업 중 하나에서 일부 슬레이브 정보를 사용할 수 있어야합니다. 젠킨스 : 다운 스트림 프로젝트에서 사용할 Groovy 스크립트의 가치를 얻는 방법?

나는 슬레이브 정보

for (aSlave in hudson.model.Hudson.instance.slaves) { 
    println('===================='); 
    println('Name: ' + aSlave.name); 
    println('getLabelString: ' + aSlave.getLabelString()); 

    ... In here I can dig out the information that I need 
} 

내가 작업을 빌드 포스트에서 사용하는 정보를 다시 얻을 수있는 방법을 방법이 있나요에 액세스 할 수있는 그루비 시스템 스크립트가?

포스트 빌드 작업에서 사용할 수있는 매개 변수 나 다른 매개 변수에 출력을 추가해야합니까?

답변

1

그것은 기본적으로 당신은 아무것도 할 수있는 'Evaludated 그루비 스크립트'섹션을 가지고 ... 그러나 그것은 반환해야 환경 변수로 사용될 속성 맵. 나는 거의 Anyware를

import hudson.model.* 

String labelIWantServersOf = TheLabelUsedOnTheElasticAxisPlugin; // This is the label assosiated with nodes for which i want the server names of 
String serverList = ''; 

for (aSlave in hudson.model.Hudson.instance.slaves) {   
    out.println('Evaluating Server(' + aSlave.name + ') with label = ' + aSlave.getLabelString()); 

    if (aSlave.getLabelString().indexOf(labelIWantServersOf) > -1) { 
    serverList += aSlave.name + ' ';   
    out.println('Valid server found: ' + aSlave.name);     
    }  

} 

out.println('Final server list where SOAP projects will run on = ' + serverList + ' which will be used in the environment envInject map'); 

Map<String, String> myMap = new HashMap<>(2); 
myMap.put("serverNamesToExecuteSoapProjectOn", serverList); 
return myMap; 

에서 속성 (또는 환경 변수)를 참조 할 수있는이 나를 위해 kewl 근무 있도록 그루비 스크립트에서 값을 반환하는 방법을 모르겠어요 그리고 난에 환경을 변수 serverNamesToExecuteSoapProjectOn 쓰기 윈도우 배치 스크립트를 사용하여 프로퍼티 파일을 만들고 파라미터 빌드로 프로퍼티 파일을 넘겨 준다.

1

Windows를 실행중인 경우 해결책이 있습니다. 현재 실행중인 작업에 사용할 수있는 환경 변수에 설정을 저장할 수 있습니다. 작업이 끝나면 더 이상 존재하지 않지만 빌드 후 작업에는 사용할 수 있습니다. 스크립트가 (빌드 후-행동 등이있는 경우) 해당 콘텐츠에 액세스 할 수는 %의 PARAMETER_NAME의 %를 사용하여 실행 한 후

//Creating String to make my example more clear 
String myString = 'this is just a test!'; 

//Create an environment variable, so the Jenkins job can use the parameter 
def pa = new ParametersAction([new StringParameterValue('PARAMETER_NAME', myString)]); 

// Add variable to current jobs environment variables. 
Thread.currentThread().executable.addAction(pa) 
println 'Script finished! \n'; 

예를 들면 다음과 같습니다.

추가 힌트 : 사용 가능한 모든 환경 변수를 보려면 빌드 단계 "execute windows batch command"를 사용하고 buttom에서 "사용 가능한 환경 변수 목록보기"를 클릭하십시오 (스크립트 실행 중에 작성한 변수는 제외됨).). 그러나 당신은 당신의 그루비 스크립트 사용 예에서이 변수를 사용할 수 있습니다 : 나는 EnjEnv 플러그인을 사용

String jenkinsHome = System.getenv('JENKINS_HOME');

+0

나는 simular를하는 것을 끝낸다. - thanks – Chrispie

+1

아무런 문제 없다. 다른 사용자가 사용할 수 있도록 대답을 수락하는 것을 잊지 마십시오.) – Krummy

관련 문제