2016-11-30 6 views
0

Jenkinsパイプラインジョブでビルドパラメータを取得しようとしています。このコンテキストでは、パラメータは「このプロジェクトはパラメータ化されています」チェックボックスに定義され、ビルド時に渡されます。これらのさまざまな方法でapp.blah.blah::私は、ビルドパラメータにアクセスしようとしたJenkinsパイプラインジョブでビルドパラメータを取得できません

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')] 
} 

  • $ {app.blah仕事で

    は、私は2本の枝を呼び出します。何とか}
  • $ app.blah.blah
  • "$ {app.blah.blah}"
  • app.blah.blah
  • currentBuild.buildVariableResolver.resolve( "app.blah.blah")
  • System.getenv( "app.blah.blah")

は、私はいつも、私は多少理解することができ、いくつかの例外を得るが、I非常に迷惑をかけるようになり始めた。それはこのハードは、神のためにスクリプトでビルドパラメータを取得するべきではありません。私は間違って何をしていますか?

+0

そして、ジョブ定義では、あなたが一緒に「app.blah.blah」の名前で「文字列パラメータ」を追加おそらくデフォルト値ですか?それが本当であると仮定すると、どのようにしてビルドにパラメータを渡しましたか? –

+0

それはまさにそれです。オンデマンドのパラメータ化されたビルドを実行して、このパラメータを渡しました。解決策を見つけ出した。それはパラメータ名のドットでした。 –

答えて

0

これは私のために働いている。だから私は、あなたがこのようにそれを行うすることが十分でなければなりません推測

println blah 

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

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

それは、Groovyを混乱させるビルド・パラメータ名のドットになってしまいました。スペースとドットは注意してください! –

+0

これも試してみることができます:$ {app.blah.blah}しかし、私はまだgroovyが各ドットを関数呼び出しと考えると思います。 – MaTePe

0

さて、あなたは内のドットを持つことができないように見えますあなたのビルドパラメータ名! Groovyがあなたがクラスにアクセスしていると思うのを混乱させます。 AntスクリプトとJenkinsの仕事でパラメータを一貫して保つことはできないだろうが、今は大きな問題ではない。点在する変数にアクセスする方法を知っている人は、自由に入力してください!ビルドパラメータ変数の

正しい構文:アクセスするためのalphanumeric_underline_only

正しい構文:println(alphanumeric_underline_only)

+0

将来の読者のために、私はあなたの答えを、他の読者が明快で使いやすい正式なものに編集することを提案します。このサイトの回答は、常に非常に有用で、開発者の多くのGoogle検索に出てくる。あなたが正しい構文の例とともにそれをどのように修正したかを説明してください。 –

関連する問題