2016-11-30 8 views
0

Ich versuche, einige Build-Parameter in einem Jenkins Pipeline-Job zu bekommen. In diesem Kontext werden die Parameter in der Checkbox "Dieses Projekt ist parametrisiert" definiert und zur Erstellungszeit übergeben.Ich kann keine Build-Parameter in Jenkins Pipeline Job

Im Job nenne ich zwei Zweige:

parallel firstBranch: { 
    build job: 'Run Blah', parameters: [string(name: 'BLAH', value: '$app.blah.blah')] 

}, secondBranch: { 
    build job: 'Run BlahBlah', parameters: [string(name: 'BLAH', value: '$app.blah.blah')] 
} 

Ich habe versucht, die Build-Parameter zuzugreifen: app.blah.blah in diesen verschiedenen Möglichkeiten:

  • $ {app.blah. blah}
  • app.blah.blah $
  • "$ {app.blah.blah}"
  • app.blah.blah
  • currentBuild.buildVariableResolver.resolve ("app.blah.blah")
  • System.getenv ("app.blah.blah")

Ich bekomme immer eine Ausnahme, die ich etwas verstehen kann, aber ich Ich bin sehr verärgert. Es sollte nicht dieser harte sein, um einen Build-Parameter im Skript um Gottes Willen zu bekommen. Was mache ich falsch?

+0

Und in der Jobdefinition, kann du einen "String-Parameter" mit dem Namen "app.blah.blah" zusammen mit vielleicht einem Standardwert? Angenommen, das ist alles wahr, wie haben Sie den Parameter an den Build übergeben? –

+0

Das ist es genau. Ich habe den Parameter übergeben, indem ich einen on-demand parametrisierten Build ausgeführt habe. Endete die Lösung tho finden; es waren die Punkte in den Parameternamen. –

Antwort

0

Dies ist für mich arbeiten:

println blah 

Also ich denke, es sollte genug sein, damit Sie es wie dies zu tun:

parallel firstBranch: { 
    build job: 'Run Blah', parameters: [string(name: 'BLAH', value: blah)] 

}, secondBranch: { 
    build job: 'Run BlahBlah', parameters: [string(name: 'BLAH', value: blah)] 
} 
+0

Ja, es endete damit, dass die Punkte im Build-Parameternamen verwirrend Groovy waren. Leerzeichen und Punkte Vorsicht! –

+0

Sie könnten das auch versuchen: $ {app.blah.blah}, aber ich denke immer noch, dass groovy jeden Punkt als Funktionsaufruf betrachten würde. – MaTePe

0

Nun, sieht aus wie Sie keine Punkte haben können Ihre Build-Parameternamen! Verwirrt Groovy zu der Annahme, dass Sie auf eine Klasse zugreifen. Es saugt, dass ich nicht in der Lage sein werde, meine Parameter über Ant-Skripte und Jenkins-Jobs hinweg konsistent zu halten, aber das ist momentan keine große Sache. Wenn jemand weiß, wie man auf gepunktete Variablen zugreift, können Sie gerne etwas hinzufügen!

korrekte Syntax für Build-Parameter Variable: alphanumeric_underline_only

korrekte Syntax für den Zugriff auf: println(alphanumeric_underline_only)

+0

Für zukünftige Leser schlage ich vor, dass Sie Ihre Antwort in eine formale Antwort schreiben, die für andere Leser klar und brauchbar ist. Antworten auf dieser Seite sind immer sehr nützlich und kommen bei vielen Google-Suchen von Entwicklern auf. Erläutern Sie, wie Sie es mit einem Beispiel für die richtige Syntax behoben haben. –

Verwandte Themen