Jenkinsはlocalhostで実行されています。 GitHubにリポジトリがあります。 「変更がGitHubにプッシュされたときにビルドする」オプションがオンになっています。
[今すぐビルド]をクリックすると、ビルドは正常に完了し、問題はありません。しかし、リポジトリにコードをコミットしているとき、自動ビルドは行われていません。リポジトリが公開されているため、システムからGitHubにアクセスできます。Jenkinsでさえも検出できるはずです。ポーリングオプションがあることは知っていますが、リポジトリで変更が検出されたときにJenkinsがビルドするようにします(これは私たちが達成しようとしていることです)。
構成:
ジェンキンス1.615
Gitプラグイン2.3.5
Git Client Plugin 1.17.1
————————————————————————————————————————————
[〜#〜] edit [〜#〜]:「変更がGitHubにプッシュされたときにビルドする」オプションがGitHubプラグインの最新バージョンでは、「GITScmポーリングのGitHubフックトリガー」に名前が変更されました。 (@smrubinのフィードバックのおかげ。)
webhook url
を見逃したと思います。
Build when a change is pushed to GitHub
オプションのチェックに加えて、webhook urlをGithubリポジトリに追加して、Auto triggerメカニズムを動作させる必要があります。どうやって:
Githubリポジトリに移動します。
設定-> Webhooks&Services->サービス->サービスの追加->「Jenkins(GitHub plugin)」を選択
次に、Jenkins hook url
にjenkinsのURLを次のように入力します。 http:// your_jenkins_url/github-webhook /
そして、非常に重要です、あなたのローカルホストにjenkinsサーバーをインストールしているので、あなたはすべきではないことに注意してくださいtGithubはlocalhost
またはhttp://localhost:8080/github-webhook/
または127.0.0.1
を認識できないため、上記のJenkinsフックURLを192.168.*.*
のように埋めます。
Githubで認識できる外部からアクセス可能なDNS名またはIPアドレスを使用する必要があります。
私も同じ問題を抱えて解決しました。問題は、URLが/
で終わる必要があることでした。意味:
http://<jenkinsurl>:8080/github-webhook/
✅
http://<jenkinsurl>:8080/github-webhook
❌
(最後に不足している/
に注意してください。)
実際、Jenkins -> Github plugin configuration
(上記)からwebhookの設定を行うと、githubでwebhookが作成されたままになります。したがって、上記の2つのアプローチは基本的に同じことを行います。
個人的には、Githubからwebhookを作成するのが好きです。なぜなら、この方法では、Jenkinsでgithubユーザー情報を共有または保存する必要がないからです。
手順:
Githubにログイン(管理者で)
Jenkinsでフックするリポジトリに移動します
これで、変更とコミットが行われ、jenkins build get triggerが自動的に表示されます。 githubでコードをプッシュするときに、jenkinsジョブで設定を行ってビルドを開始することを忘れないでください。
GitHubプラグイン( https://wiki.jenkins-ci.org/display/JENKINS/GitHub+Plugin )には、手動モードと自動モードの2つの方法があります。 mainframerは、手動モードへの回答を提供します。今日、私は何か新しいものを見つけました。 mainframerのサービスへの追加では、複数のJenkinsのインスタンスを追加できません。そのため、以下に示すように、他のインスタンスにWebhookを追加します。また、正常に動作します。
私はここに写真を入れたかったのですが、私のIDにはそうする権利がありません。