1. ホーム
  2. ギット

[解決済み】Gitを使ったJenkins CIで、masterへのプッシュをトリガーにするにはどうすればいいですか?

2022-04-11 02:46:16

質問

GitHubを使用するプロジェクトにJenkins-ciをセットアップしようとしています。すでに適切なプラグインを使用してJenkinsをセットアップしています。私は、プロジェクトの誰かがmasterにプッシュしたときにのみ、Jenkinsがビルドスクリプトを実行するようにしたいと思っています。今のところ、誰かがどこかにプッシュしたらいつでもビルドが開始されるように設定することができましたが、これでは範囲が広すぎます。Git の post-receive サービスフックを使えば、このようなことができます。

Jenkinsのwikiやいくつかのチュートリアルを読みましたが、この特定の詳細が欠けています...それは多分ポーリングと関係するものですか?あるいは、Git側で作業を行うべきで、GitがJenkinsをトリガーするのは、次のような場合だけです。 master は変更されたのでしょうか?

解決方法は?

既に指摘されているように ジーズド のコメントでは、一方では良い解決策があります。 ポーリングは死ななければならない: GitフックからJenkinsビルドをトリガーする ):

  • Jenkinsジョブのビルドトリガーを SCMをポーリングする を実行する必要があります。 ない は、スケジュールを指定します。

  • GitHubの受信後トリガーを作成し、URLを通知します。

    http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>?token=<get token from git to build remotely>
    
    
  • これは、指定したGitリポジトリをポーリングするすべてのビルドをトリガーします。

  • しかし、ポーリングは実際に使用中のブランチに何かプッシュされているかどうかをチェックします。

完璧に動作しています。