2017-06-09 1 views
0

Innerhalb des Groovy-Codes für einen Pipeline-Job, der mehrere Jobs verwaltet, ist es möglich, den Standardwert eines Parameters zu lesen, der in der Konfiguration eines anderen Jobs definiert ist?Jenkins Pipeline Groovy: Standardparameterwert von einem anderen Job lesen?

Das heißt, in Pipelineauftrag A möchte ich den Standardwert von Parameter P in Auftrag B lesen, der noch nicht eingeplant wurde. (Dies beeinflusst, wie die Anforderung B zu bauen in Auftrag A. aufgebaut ist)

def val = "some-random-prefix" + 
      ReadJobParamDefault(job: 'B', parameter: 'paramName') + 
      "-some-random-suffix" 
def b = build(job: 'B', 
       description: 'Some text', 
       parameters: [[$class: 'StringParameterValue', 
          name: 'paramName', 
          value: val]]) 

Gibt es etwas Reales für ReadJobParamDefault?

Antwort

1

Ich denke, dass es möglich sein könnte einige Groovy Klasse in eine gemeinsame Bibliothek zu speichern (https://jenkins.io/doc/book/pipeline/shared-libraries/) etwas zu tun, wie

public static String ReadJobParamDefault(jobName, String parameter) { 
    def job = Hudson.instance.getJob(jobName) 
    String ret = null; 
    if (job != null && parameter != null && parameter.trim().length() > 0) { 
     job.getProperties().values().each { 
      if(it instanceof hudson.model.ParametersDefinitionProperty) { 
       if (it.getParameterDefinition(parameter) != null) { 
        ret = it.getParameterDefinition(parameter). 
         getDefaultParameterValue().getValue(); 
       } 
      } 
     } 
    } 
    return ret; 
} 
+0

Danke. Ich versuche es, aber es wird eine Weile dauern - ich bin kein Administrator in diesem Jenkins, also muss ich für jede Methode, die die Groovy-Sandbox blockiert, ein Ticket für die Skriptfreigaben anlegen. Sieht nach einem guten Ausgangspunkt aus, sehr geschätzt. –

+0

Arbeitete! Vielen Dank. –

Verwandte Themen