ngrokを使って、手軽にwebhookを利用したJenkinsのジョブを試す。

用語説明

Jenkins

Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks related to building, testing, and delivering or deploying software.

(from: Jenkins User Documentation)

ビルドやテストなどを自動化するサーバー。

 

ngrok

Ngrok exposes local servers behind NATs and firewalls to the public internet over secure tunnels.

(from: ngrok - secure introspectable tunnels to localhost)

ローカルサーバーをPublicなURLに割り当てるサービス。

作るもの

GitHub運用リポジトリのmasterブランチへpushした際に、Jenkinsで設定した処理を走らせる。

GitHubのwebhookを使うために、ngrokでローカルサーバーにPublicなURLを割り当てた。

開発環境

> java --version
java 14.0.2 2020-07-14

> jenkins --version
2.254

Jenkins ジョブ設定

  1. インストール, セットアップ: JenkinsでCI環境構築チュートリアル (Linux編・macOS編)
  2. 新規ジョブ作成
  3. GitHub project > Project url: GitHubのリポジトリURL
  4. ソースコード管理 > Git
  5. ソースコード管理 > リポジトリURL: GitHubのリポジトリURL
  6. ビルドするブランチ > ブランチ指定子 (空欄はすべてを指定) > /master
  7. ビルド・トリガ > GitHub hook trigger for GITScm polling
  8. コンソール出力にタイムスタンプを追加する ※お好み
  9. ビルド > シェルの実行 > シェルスクリプト > cat README.md ※ masterブランチへのpush時に走らせたい処理

ngrok 設定

  1. インストール, セットアップ: Setup - ngrok
  2. ngrok http 8080

GitHub 設定

  1. セットアップ: リポジトリ作成
  2. GitHubのリポジトリ > Settings > Webhooks > 「Add webhook」
  3. Payload URL: {ngrok http 8080 で得たURL}/github-webhook/

Jenkins で処理を走らせる

  1. masterブランチでpush

Jenkinsトップのコンソール出力から処理を実行した形跡が確認できる。

参考