Jenkinsでマルチブランチパイプラインジョブを使用しています。
GitHubでプルリクエストが発生したブランチ名を見つけるにはどうすればよいですか?
私は/github-webhook/
を使用しており、/ghprbhook/
も試し、次の環境変数を試しました:GIT_LOCAL_BRANCH
、GIT_BRANCH
、ghprbSourceBranch
、しかししませんでした結果を得る。
何か提案があれば、ぜひ試してみたいと思います。
CHANGE_BRANCH
は、PRのソースブランチの正しい名前を示します。
CHANGE_TARGET
PRマージのターゲット名を示します
いくつかの異なるパラメータがあり、コンテキストによっては正しいパラメータを見つけるのが難しい場合があります。
BRANCH_NAME
マルチブランチプロジェクトの場合、これは構築中のブランチの名前に設定されます。たとえば、機能ブランチからではなく、
master
から本番環境にデプロイする場合などです。ある種の変更要求に対応する場合、名前は通常任意です(CHANGE_ID
およびCHANGE_TARGET
を参照)。
これは、ブランチ名(ブランチビルドなど)またはその他の識別子(プルリクエストIDなど)のいずれかです。ドキュメントはどちらでもかまいませんが、完全なドキュメントを読んでいない場合は驚くべき動作です。
MZ2010による他の回答 は、おそらくチェックアウトとして機能する方法を示しています。プラグインのバージョンに依存する可能性があり、おそらく上記と同じ問題の影響を受けます。
def scmVars = checkout scm
def branchName = scmVars.GIT_BRANCH
それを取得する方法は、CHANGE_BRANCH
環境変数をサポートする GitHubブランチソースプラグイン を使用する場合です。これは JENKINS-43418 で追加され、env.CHANGE_BRANCH
を使用している場合は参照できるはずです。ただし、マルチブランチジョブでは使用できない場合があります。
マルチブランチパイプラインの場合は、次を使用します。
env.BRANCH_NAME
ブランチ名にアクセスするため。
編集:環境変数またはgit変数をデバッグする必要がある場合は、次のことを試すことができます。
gIT変数にアクセスする
def scmVars = checkout scm
def branchName = scmVars.GIT_BRANCH
ENV変数を出力する
sh("printenv")
documentation によると、プルリクエストIDはCHANGE_ID
変数として公開されます。
ところで。環境変数は、env.CHANGE_ID
などのenv
を介してパイプラインのGroovyコードでアクセスできます。