2015-07-13 8 views
5

Vorrei salvare i parametri passati in un lavoro JobDSL. So di poter fare riferimento a singoli parametri, ma mi piacerebbe rendere il codice generico. Come potrei accedere all'elenco dei parametri passati al lavoro?Come accedere all'elenco dei parametri del lavoro Jenkins da uno script JobDSL?

Il codice attuale simile a:

final jobParameters = new File('parameters') 
jobParameters.write(""" 
    |AOEU=${AOEU} 
    |SNTH=${SNTH} 
"""[1..-1].stripMargin().trim()) 

Vorrei essere in grado di farlo sembrare qualcosa di simile:

final jobParameters = new File('parameters') 
jobParameters.write(params.iterator().join('\n')) 

params è qualcosa che è disponibile nella build flusso Plugin ma non il plugin JobDSL.

+0

Qualche snippet di codice come punto di partenza? – StephenKing

+0

Ho aggiunto codice di esempio. –

risposta

9

Il DSL non offre accesso ai parametri di costruzione. Ma lo script ha accesso al modello a oggetti Jenkins, in modo da poter utilizzare l'API Jenkins per recuperare la build attuale ed i suoi parametri:

import hudson.model.* 

Build build = Executor.currentExecutor().currentExecutable 
ParametersAction parametersAction = build.getAction(ParametersAction) 
parametersAction.parameters.each { ParameterValue v -> 
    println v 
} 
7

Questo è come lo faccio per il debug (ho letto da qualche parte, I' m mai un esperto Groovy o Job DSL ...):

binding.variables.each { 
    println "${it.key} = ${it.value}" 
} 

Questo mostra tutte le variabili di ambiente esistenti, compresi i parametri del lavoro.

JOB_NAME = job-generator 
... 
NEXT_PROJECTS = baz,bat 
... 
PROJECT_TYPE = Software 
... 
PROJECTS = foo,bar 
... 
SHELL = /bin/bash 
+1

funziona come un sogno! bello e semplice, esattamente quello di cui avevo bisogno! –

+0

@eerriicc Grazie amico <3 – BVengerov

Problemi correlati