GitHub Repository 有變動時自動通知 Jenkins 2 進行編譯建置 (GitHub Plugin)

之前筆記 遠端 Git Repository 有 merge 時自動通知 Jenkins 2 進行編譯建置 (webhook) 紀錄了如何以 GitHub 為例設定 Git server 提供的 webhook 功能與 Jenkins 2 建置自動化建置的 CI 環境,其中 GitHub 的相關功能 Jenkins 2 有相對應的 Plugin 功能,今天就來看看設定上有什麼不同

文章大綱

  1. 安裝 GitHub Plugin
  2. 設定 GitHub Plugin
  3. 設定 build project
  4. 設定 GitHub
  5. 結果

安裝 GitHub Plugin

  1. Manage Jenkins –> Manage Plugins

    1install

  2. Available tab –> Filter GitHub plugin –> 勾選 GitHub plugin

    2github

設定 GitHub Plugin

  1. Manage Jenkins –> Configure System

    3globalconfig

  2. ADD GITHUB SERVER

    4addgitserver

    5addgitserver

  3. ADD Credential

    6addcrend

  4. Credential detain

    7cred

    • Kind –> Secret text (由 Plain Credentials Plugin 提供)
    • Secret (由 GitHub 產生)

      • GitHub 個人設定

        8githubsetting

      • Personal access tokens –> Generate new token

        9gentoken

      • New personal access token

        • 填寫 Token 描述
        • 選擇 scopes 需要 admin:org_hook

          10tokeninfo

      • Personal access tokens

        • 只有出現一次

          11gettoken

設定 build project

  • GitHub project

    • 填入 Project url

      12projecturl

  • Source Code Management

    • Git
    • 填寫 Git Repository 資訊

      13gitrepo

  • GitHub hook trigger for GITScm polling

    0githubhook

    • 有安裝 GitHub plugin 才會出現這個選項

設定 GitHub

  1. Add service

    • Settings –> Integration & services –> Add service –> “Jenkins” –> Jenkins(GitHub plugin)

      13githubservice

  2. 填寫 Jenkins service hook url

    • 會自動轉導至 Settings –> Webhooks
    • 填入 Jenkins hook url
      • Jenkins 對外網址加上 /github-webhook
    • 確認 Active

      14serviceinfo

結果

  1. 收到通知

    15received

  2. 完成 build

    16done

參考資訊

  1. GitHub Plugin
  2. How to Start Working with the GitHub Plugin for Jenkins
  3. 遠端 Git Repository 有 merge 時自動通知 Jenkins 2 進行編譯建置 (webhook)