GitHubPullRequestBuilderはJenkins v2.0パイプラインジョブと互換性がないようです。
GitHubプルリクエストイベントからトリガーされるパイプラインジョブをどのように構成しますか?
このトピックに関するドキュメントはまばらであり、この例は見つかりません。または、GitHubでWebフックを作成して、PRイベントでパイプラインジョブをトリガーする方が良いでしょうか?
PipelineをGitHubプルリクエストで使用する最も簡単な方法は、Jenkinsfile
という名前でリポジトリにスクリプトを配置し、GitHub Branch Sourceプラグイン。 ドキュメント
同様の問題がありました。これが私のために働いたものです
前提条件
Githubで
YourJenkinsURL/github-webhook/
としてのURLパイプライン{ エージェントany ステージ{ stage( 'Test'){ ステップ{ echo 'Hello World。 .. ' } } } }
ジェンキンスについて
+refs/pull/*:refs/remotes/Origin/pr/*
として追加します${sha1}
である必要がありますそれでおしまい。準備万端です。リポジトリのマスターブランチでPRを作成すると、Jenkins Pipelineジョブがトリガーされます。
いくつかの観察
簡単に言うと、フローは次のようになります。
パイプラインをコードとして作成し、プロジェクトのルートディレクトリにあるJenkinsfile
というファイルに保存します。そのコードは、プロジェクトがどのようにビルドされるかを記述する必要があります。例についてはこちらをご覧ください: https://jenkins.io/doc/pipeline/examples/
次に、Jenkinsに新しい「Multibranch Pipeline Project」アイテムを作成する必要があります。手順1のレポをスキャンするようにこれを設定する必要があります。
これで、ステップ1リポジトリで新しいPRブランチを開くたびに、ブランチがチェックアウトされ、含まれているJenkinsfileの指示に従ってビルドされます。構築するものと、必要な場合に、より多くの条件を設定できます。
注:
「マルチブランチパイプラインプロジェクト」のサンプルドキュメント: https://jenkins.io/doc/book/pipeline-as-code/ (マルチブランチパイプラインプロジェクトまでスクロールします)
PRを称賛した後、プラグインを使用してPRを作成しても機能しないことに注意してください。これを分析する議論がここにあります: https://github.com/jenkinsci/gitlab-plugin/issues/298 回避策があります(その議論でも説明されています)がセットアップするのは非常に面倒です。
GitHubで生成されたプルリクエストでJenkinsジョブを自動的にトリガーするには、以下の手順に従います
Jenkinsジョブ設定
Jenkinsで一般的なWebhookトリガーをダウンロードする
JenkinsでのGitハブの構成
7. jenkinsでGeneric Webhook Triggerを選択8 . Jenkins でGeneric Webhook Trigger Configurationを選択し、手順9を実行
9.ステップ7を実行した後、JenkinsジョブはPullRequestでトリガーを取得します10.ステップ8は、Pull要求ペイロードから情報を取得するために必要です11 . プルリクエストからブランチの詳細を取得するための汎用Webhookトリガー内のブランチ構成
ありがとう