web-dev-qa-db-ja.com

Gitlab WebhookでJenkins Multi-Branch Pipelineをトリガーする方法

現在、GitlabサーバーでホストされているGitリポジトリに基づくJenkins Multi-Branch Pipelineジョブをセットアップしました。 Jenkinsはリポジトリ内のブランチを読み取り、リポジトリ内のすべてのブランチのジョブを作成できます。しかし、GitlabでWebhookを使用してジョブをトリガーする方法はわかりません。

私の質問は:

  1. どうすれば新しいブランチジョブの作成をトリガーする GitlabサーバーからJenkinsで実行できますか?プッシュされている新しいブランチのウェブフックが表示されません。

  2. どうすれば実際のビルドジョブをトリガーする単一のブランチに対して?プッシュイベントにのみWebhookを追加できますが、方法がわからないブランチ名を追加する必要があります。

  3. ブランチへのプッシュがビルドジョブ自体をトリガーする前に、Gitlabが常に「ブランチジョブの作成」をトリガーすることを確認するにはどうすればよいですか。

これまでに試したのはマルチブランチジョブのトリガーですが、これは効果がなく、次の この投稿 はまったく機能しません。

18
Michael Lihs

Jenkinsに Gitlab Plugin をインストールする必要があります。

これにより、Jenkinsに_/project_エンドポイントが追加されます。 (Jenkins => Administrate Jenkins => Configure System => Gitlabでご覧ください)

次に、GitlabプロジェクトにWebhookを追加します=> Settings => Integrations。 (または古いGitlabバージョン:Gitlabプロジェクト=>ホイールアイコン=>統合、この場合はプロジェクトの所有者である必要があるようです)

Urlで:http://*yourjenkins.com*/**project**(/*foldername*)?/*yourprojectname*を設定し、それですべてです。[Webhookの追加]をクリックします。

Webhookのテストをクリックすると、jenkinsパイプラインビルドがトリガーされます。 (200のHTTP応答が必要です)

Gitlabプラグインで認証なしで動作します。認証付きの設定は歓迎されます。

10
Antoine

私は同じ問題を抱えています。アントワーヌの答えで説明されている構成で。 200の応答を受け取ったにもかかわらずgitlab webhookのテストをクリックしても、jenkinsパイプラインビルドはトリガーされません。

コミットすると、ジョブがトリガーされます。

1
andolsi zied