2017-09-15 2 views
0

Jenkins 작업을 마지막으로 성공한 작업 변수 또는 매개 변수를 Groovy 스크립트를 통해 검색 할 수 없으므로이를 다음 작업으로 변수로 전달할 수 없습니다.null 객체에 대해 getLastSuccessfulBuild() 메소드를 호출 할 수 없습니다.

import jenkins.model.Jenkins 
def job = Jenkins.instance.getJob("Testing-4") 
def run = instance.getItems() 
println run.getEnvironment()["PipelineId"] 

오류 로그 Jenkins.getItem()에 대한

의 JavaDoc에서
ERROR: Build step failed with exception 
java.lang.NullPointerException: Cannot invoke method getLastBuild() on null object 
    at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:77) 
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:45) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 
    at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:32) 
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108) 
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112) 
    at Script1.run(Script1.groovy:3) 
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:580) 
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:618) 
    at groovy.lang.GroovyShell.evaluate(GroovyShell.java:589) 
    at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SecureGroovyScript.evaluate(SecureGroovyScript.java:168) 
    at hudson.plugins.groovy.SystemGroovy.run(SystemGroovy.java:95) 
    at hudson.plugins.groovy.SystemGroovy.perform(SystemGroovy.java:59) 
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:20) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:782) 
    at hudson.model.Build$BuildExecution.build(Build.java:205) 
    at hudson.model.Build$BuildExecution.doRun(Build.java:162) 
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:534) 
    at hudson.model.Run.execute(Run.java:1738) 
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43) 
    at hudson.model.ResourceController.execute(ResourceController.java:98) 
    at hudson.model.Executor.run(Executor.java:410) 
+0

편집 후 지정된 코드와 예외가 더 이상 적합하지 않습니다. – doelleri

+0

@doelleri 최신 오류 로그 – Kally

답변

0

: 당신을 위해

Returns: an item whose Item.getName() is name and whose Item.getParent() is this , or null if there is no such item, or there is but the current user lacks both Item.DISCOVER and Item.READ .

, getItem("Testing-4")null를 반환, 그래서 두 이름 "Testing-4"이있는 항목이없는, 또는 당신은있다 적절한 권한을 가진 사용자로 로그인하지 않았습니다.

getItems()으로 항목 목록을 얻을 수 있습니다.이 목록은 탐색 스크립트에서 유용한 항목을 찾을 때 유용합니다.

+0

수입 jenkins.model.Jenkins에게 데프 작업을 업데이트 = Jenkins.instance.getJob ("테스트-4") 데프 실행 = job.getItems() ERROR : 단계는 예외 자바로 빌드 실패 .lang.NullPointerException : null 객체에 대해 getItems() 메서드를 호출 할 수 없습니다. \t at org.codehaus.groovy.runtime.NullObject.invokeMethod (NullObject.java:77) – Kally

+0

'instance.getItems()'가 아닌 job.getItems() '. 우리는 이미'job'이 null이라는 것을 확증했습니다. – slim

+0

새로운 오류 : 예외 groovy.lang.MissingPropertyException에 실패한 단계 구축 : 없음 같은 속성을 : 인스턴스를 클래스 : script1이 \t을 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap (ScriptBytecodeAdapter.java:50) \t에서 조직에 .codehaus.groovy.runtime.callsite.PogoGetPropertySite.getProperty (PogoGetPropertySite.java:49) – Kally

0
import hudson.model.*; 

def lastSuccessfulPipelineID = build.getProject().getLastSuccessfulBuild().properties.get("envVars")['PipelineNumber'] 
def pa = new ParametersAction([ 
    new StringParameterValue("lastSuccessfulPipelineID", lastSuccessfulPipelineID) 
]) 
println(lastSuccessfulPipelineID) 

build.addAction(pa) 
+0

누군가 Jenkins의 현재 작업 Env 변수에 그루비 출력을 삽입하는 데 도움이 될 수 있습니까? – Kally

관련 문제