Help us understand the problem. What is going on with this article?

GithubからJenkinsへのServer Hook

More than 5 years have passed since last update.

GithubからJenkinsへのServer Hookを調べた結果をまとめておく。
以下の3つの方法を調べた。

  • WebHook URLsを用いる方法
  • Jenkins (GitHub plugin) を用いる方法
    • Ver1.8で確認
  • Jenkins (Git plugin) を用いる方法
    • Ver2.0で確認

この方法を用いるとGithubのコードに修正を加えると対応するJenkinsジョブを走らせることができる


WebHook URLsを用いる方法

Jenkinsの設定

HookするJenkinsのジョブの設定

  • 「ビルドのパラメータ化」で「文字列」のpayloadを指定しておく
  • セキュリティ設定時は「リモートからビルド」をチェックして認証トークンを設定しておく
  • payloadで渡されたパラメータを解析して対象のリポジトリやブランチのジョブを呼び出すなりする

Githubの設定

  • 「Settings」=> 「Server Hooks」=>「WebHook URLs」 で「URL」に[Jenkins URL]/job/[Job Name]/buildWithParametersを指定して「Update Settings」する
    • セキュリティ設定時は「URL」に?token=[Token Name]を追加

webhook.jpg


Jenkins (GitHub plugin) を用いる方法

  • GithubからHookを受け取ると対応したジョブが実行される

Jenkinsの設定

  • GitHub pluginをインストールしておく
  • セキュリティ設定は特に必要なさそう(認証ありにしてもhookできた)

HookするJenkinsのジョブ設定

  • 「ソースコード管理」の「Git」でリポジトリ(ブランチ)を指定しておく
  • 「ビルド・トリガ」の「Build when a change is pushed to GitHub」を設定しておく

Githubの設定

  • 「Settings」=> 「Server Hooks」=>「 Jenkins (Github plugin)」で「Jenkins Url」に[JenkinsのURL]/github-webhookを設定する

jenkins-github-plugin.jpg


Jenkins (Git plugin) を用いる方法

  • GithubからHookを受け取ると対応したジョブが実行される

Jenkinsの設定

  • Git pluginをインストールしておく
  • セキュリティ設定は特に必要なさそう(認証ありにしてもhookできた)

HookするJenkinsジョブ設定

  • 「ソースコード管理」の「Git」でリポジトリ(ブランチ)を指定しておく
  • 「ビルド・トリガ」の「SCMのポーリング」を設定しておく

GIthubの設定

  • 「Settings」=> 「Server Hooks」=>「 Jenkins (Git plugin)」で「Jenkins Url」にJenkinsのURLを設定する

jenkins-git-plugin.jpg


その他

githubからのHookアクセスIPについて

GithubのWebHookの説明によると204.232.175.64/27, 192.30.252.0/22らしい。

https://api.github.com/metaのhooksで確認可能(コメントで教えて頂きました)
* API仕様:Meta | GitHub API

httpsでのHookについて

  • 2013/11/07時点のhttpsでのHookはWebHook URLs/Jenkins (GitHub plugin) /Jenkins (Git plugin) でほぼ不可能だった

    • JenkinsでHookされない、Apacheレベルでログが残っていない
    • GitHub pluginのコメントでGithubの問題でhttpsが使えないらしいというものがあった
  • Hook可否について(×:Hook不可、○:Hook可)

- WebHook URLs Jenkins (GitHub plugin) Jenkins (Git plugin)
https(自己署名証明書) × × ×
https(ジオトラストの証明書) × ×
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした