2016-04-24 19 views
1

Jenkinsジョブ内で複数のパラメータを処理する方法を探しています。複数のJenkinsパラメータの条件付きOR

私のビルドは、Gitlabへのプッシュまたは手動でトリガーすることができます。

Gitlabは、プッシュを受信したブランチを含むパラメータとして${gitlabSourceBranch}を渡します。私ののビルドには、の設定は現在origin/${gitlabSourceBranch}に設定されています。 Gitlabにプッシュするときの魅力のように動作します。手動ビルドをトリガするとき

残念ながら、とは当然、それは失敗します。だから、私はデフォルト値masterGIT_BRANCHと呼ばれるビルドパラメータを設定した

[...] 
> git rev-parse origin/${gitlabSourceBranch}^{commit} # timeout=10 
ERROR: Couldn't find any revision to build. Verify the repository and branch configuration for this job. 

${gitlabSourceBranch}が設定されていないとして構築するとき手動で

ロングストーリー。 origin/${gitlabSourceBranch || GIT_BRANCH}のような条件を使用することは可能ですか(もちろんこれは動作しません)。

ありがとうございます!

答えて

3

EnvInject+Pluginを試してみてください。ジョブの構成では

This build is parameterized/Evaluated Groovy scriptを設定します。

def map = [:] 
map['GIT_BRANCH'] = GIT_BRANCH ? GIT_BRANCH : gitlabSourceBranch 
return map 

としてSource Code Management/Branches to buildを定義します。これは、GIT_BRANCHパラメータの空でない値を渡すときに$gitlabSourceBranchを上書きできるようにする必要があり

origin/${GIT_BRANCH} 

+0

「このプロジェクトはパラメータ化されました」セクションで「評価されたGroovyスクリプト」を見つけることができませんでしたが、「実行環境を準備する」の中に見つかりました。あなたが提供したスクリプトを使用して、今すぐ動作します。ありがとうございました! –

+0

また、 'GIT_BRANCH'はデフォルト値を持つべきではありません。そうでなければ、その値は常に使用されます。 –

関連する問題