🔗 GitHub リポジトリを Jenkins に連携する手順
🧱 1. まず、GitHubアカウントを用意
-
まだ持っていない人は、GitHub公式サイトでアカウント作成。
🍴 2. 「サンプルアプリ」を Fork(自分のGitHubにコピー)
-
教材として使うのは「simple-java-maven-app」というJavaのサンプルアプリ。
-
公式リポジトリをForkすると、自分のアカウント内に同じ内容のコピーができます。
-
Forkとは:
⇒ 既存のGitHubリポジトリを「自分の編集用にコピーする」機能。
📝 3. Jenkinsfile をブラウザ上で編集する
-
GitHub上で、Forkした自分のリポジトリを開く。
-
jenkins/Jenkinsfileを開いて、✏️マーク(鉛筆アイコン)をクリック。 -
agentブロックを変更:⬇ これを削除して、代わりにこう書く:
-
理由:Dockerを使うと少し設定が複雑になるので、ここでは簡単に「どこでも動く(any)」という指定に変更します。
-
編集が終わったら「Commit changes」をクリックして保存。
🔁 4. Jenkinsで新しいジョブ(Pipeline)を作る
-
Jenkinsのトップ画面から「新規ジョブ作成(New Item)」
-
名前を
GitHub Pipelineにして、「パイプライン」を選択 -
「OK」を押して進む
-
「Pipeline」セクションで以下を設定:
📦 スクリプトの取得方法:
-
「Pipeline script from SCM」を選択
-
「SCM」には Git を選ぶ
-
GitリポジトリのURLを貼り付け(GitHubでコピーしたやつ)
-
ブランチは
master(またはmain)
📁 Jenkinsfileの場所
-
通常はプロジェクトの直下にあるけど、今回は
jenkins/Jenkinsfile -
⇒ 「Script Path」に
jenkins/Jenkinsfileと書く
-
-
「保存(Save)」して、「ビルド実行(Build Now)」
🧪 Jenkinsがどう動くか?
-
JenkinsがGitHubからコードを自動でクローン(コピー)する
-
Jenkinsfileの内容に従ってビルドを開始
-
Mavenコマンド(
mvn clean installなど)を実行して、ビルド・テストする
📌 最初に git clone を手動で書かなくてもいいのは、Jenkinsが自動でリポジトリを読み込むからです。
🗂 裏側で何が起きてるの?
-
Jenkinsはビルドごとに一時フォルダを作ってコードをクローンして実行。
-
毎回同じ場所ではなく、ランダムな文字列のフォルダになる。
-
deleteDir()ステップを使えば、余計なフォルダを削除することもできる。
⏰ Jenkinsに「変更を監視させて自動ビルド」する方法(Poll SCM)
💡 ポイント
-
Jenkinsに「GitHubに変更があるか定期的にチェックしてね」と設定できる。
-
これが 「Poll SCM(SCMをポーリング)」。
🔧 設定方法
-
Jenkinsジョブの設定(Configure)を開く
-
「Build Triggers(ビルドのきっかけ)」のところで
-
✅ 「Poll SCM」にチェックを入れる
-
スケジュール欄に以下を入力:
-
-
これは「2分おきにチェックして変更があればビルドする」という意味。
📌 H/2 という書き方は、「2分ごとに少し時間をずらして実行する」というJenkins独自の書き方。
複数のジョブが重ならないように、ちょっとだけランダムにずらしてくれます。
✏ GitHub上でコミットしてみる(動作確認)
-
自分のGitHubリポジトリで、Jenkinsfileに以下のような行を追加:
-
コミットメッセージを「
added complete stage to pipeline」にして保存。 -
しばらく待つと、Jenkinsが2分ごとにGitHubをチェックして、変更に気づいて自動でビルドを実行。
🧪 Jenkinsの画面でログを見ると、こう表示される:
