GitHub リポジトリを Jenkins に連携する

 


🔗 GitHub リポジトリを Jenkins に連携する手順

🧱 1. まず、GitHubアカウントを用意


🍴 2. 「サンプルアプリ」を Fork(自分のGitHubにコピー)

  • 教材として使うのは「simple-java-maven-app」というJavaのサンプルアプリ。

  • 公式リポジトリをForkすると、自分のアカウント内に同じ内容のコピーができます。

  • Forkとは:
    ⇒ 既存のGitHubリポジトリを「自分の編集用にコピーする」機能。


📝 3. Jenkinsfile をブラウザ上で編集する

  1. GitHub上で、Forkした自分のリポジトリを開く。

  2. jenkins/Jenkinsfileを開いて、✏️マーク(鉛筆アイコン)をクリック。

  3. agentブロックを変更:

    agent {
    docker { image 'maven:3.8.1-jdk-11' } }

    これを削除して、代わりにこう書く:

    agent any
  4. 理由:Dockerを使うと少し設定が複雑になるので、ここでは簡単に「どこでも動く(any)」という指定に変更します。

  5. 編集が終わったら「Commit changes」をクリックして保存。


🔁 4. Jenkinsで新しいジョブ(Pipeline)を作る

  1. Jenkinsのトップ画面から「新規ジョブ作成(New Item)

  2. 名前を GitHub Pipeline にして、「パイプライン」を選択

  3. 「OK」を押して進む

  4. 「Pipeline」セクションで以下を設定:

    📦 スクリプトの取得方法:

    • 「Pipeline script from SCM」を選択

    • 「SCM」には Git を選ぶ

    • GitリポジトリのURLを貼り付け(GitHubでコピーしたやつ)

    • ブランチは master(または main

    📁 Jenkinsfileの場所

    • 通常はプロジェクトの直下にあるけど、今回は jenkins/Jenkinsfile

    • ⇒ 「Script Path」に jenkins/Jenkinsfile と書く

  5. 「保存(Save)」して、「ビルド実行(Build Now)」


🧪 Jenkinsがどう動くか?

  1. JenkinsがGitHubからコードを自動でクローン(コピー)する

  2. Jenkinsfileの内容に従ってビルドを開始

  3. Mavenコマンド(mvn clean installなど)を実行して、ビルド・テストする

📌 最初に git clone を手動で書かなくてもいいのは、Jenkinsが自動でリポジトリを読み込むからです。


🗂 裏側で何が起きてるの?

  • Jenkinsはビルドごとに一時フォルダを作ってコードをクローンして実行

  • 毎回同じ場所ではなく、ランダムな文字列のフォルダになる。

  • deleteDir()ステップを使えば、余計なフォルダを削除することもできる。


⏰ Jenkinsに「変更を監視させて自動ビルド」する方法(Poll SCM)

💡 ポイント

  • Jenkinsに「GitHubに変更があるか定期的にチェックしてね」と設定できる。

  • これが 「Poll SCM(SCMをポーリング)」

🔧 設定方法

  1. Jenkinsジョブの設定(Configure)を開く

  2. 「Build Triggers(ビルドのきっかけ)」のところで

    • 「Poll SCM」にチェックを入れる

    • スケジュール欄に以下を入力:

      H/2 * * * *
  3. これは「2分おきにチェックして変更があればビルドする」という意味。

📌 H/2 という書き方は、「2分ごとに少し時間をずらして実行する」というJenkins独自の書き方。
複数のジョブが重ならないように、ちょっとだけランダムにずらしてくれます。


✏ GitHub上でコミットしてみる(動作確認)

  1. 自分のGitHubリポジトリで、Jenkinsfileに以下のような行を追加:

    stage('Complete') {
    steps { echo 'Job complete' } }
  2. コミットメッセージを「added complete stage to pipeline」にして保存。

  3. しばらく待つと、Jenkinsが2分ごとにGitHubをチェックして、変更に気づいて自動でビルドを実行

🧪 Jenkinsの画面でログを見ると、こう表示される:

Obtained jenkins/Jenkinsfile from our repo
Running Maven steps


前の記事:Jenkins Pipeline の基本

次の記事:Jenkins:マルチブランチパイプラインとパラメータ付きパイプライン