2015-07-13 13 views
5

Bir JobDSL işine aktarılan parametreleri kaydetmek istiyorum. Tek tek parametrelere başvurabileceğimi biliyorum ama kodu jenerik yapmak istiyorum. İşe aktarılan parametre listesine nasıl erişebilirim? Ben istiyorum JobDSL komut dosyasından Jenkins iş parametrelerinin listesine nasıl erişilir?

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

gibi bir şey bakmak elde edebilmek için:

geçerli kod şöyle görünür Build'a Akış Eklentisi kullanılabildiğine şeydir

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

params ama JobDSL Eklentisi değil.

+0

Herhangi bir kod parçacığı başlangıç ​​noktası olarak mı? – StephenKing

+0

Örnek kod ekledim. –

cevap

9

DSL, yapı parametrelerine erişim sunmuyor. Bu benim ayıklama için böyle yaparız

import hudson.model.* 

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

(Ben bir yerde, ben okumak: Ama senaryo geçerli yapı ve parametrelerini almak için Jenkins API kullanabilirsiniz böylece Jenkins nesne modeline erişimi olan Hiçbir şekilde bir Groovy veya Job DSL uzmanı değildir ...):

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

Bu, iş parametreleri de dahil olmak üzere tüm mevcut ortam değişkenlerini gösterir.

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

bu bir rüya gibi çalışır! güzel ve basit, tam ihtiyacım olan şey! –

+0

@eerriicc Teşekkürler adam <3 – BVengerov

İlgili konular