GitHubにコードをプッシュしたら、自動でビルドが始まる

1. なぜGitとJenkinsを連携させるのか?

手動で「ビルド」ボタンを押す運用だと、いつか必ず「テストし忘れ」や「古いバージョンのデプロイ」といったミスが起きます。

Gitと連携(自動化)することで、以下のようなメリットがあります。

  • 即時フィードバック: コードを書いてプッシュした数分後には、テスト結果がわかります。
  • Pipeline as Code: ビルドの手順をJenkinsfileという名前のファイルでリポジトリ(コード)と一緒に管理できます。
  • ヒューマンエラーの排除: 「誰がいつやっても同じ手順」でビルドが行われます。

2. 連携の仕組み:Webhook(ウェブフック)

JenkinsがGitの更新を検知する方法は主に2つあります。

  1. ポーリング: Jenkinsが定期的に「更新ありますか?」とGitに聞きに行く。
  2. Webhook (推奨): Git側が「更新されました!」とJenkinsに通知を送る。

今回は、よりモダンでリアルタイムな Webhook を意識したパイプライン構築を目指します。


3. ハンズオン:GitHubのコードを自動ビルドする

前半:準備するもの

  • GitHubのアカウント
  • 前回作成したJenkins環境(Docker等)
  • GitHub上の公開リポジトリ(テスト用に何でも良いので1つ作成してください)

ステップ1:GitHubリポジトリに Jenkinsfile を作成

リポジトリのルート(一番上の階層)に、Jenkinsfile という名前のファイルを作成し、以下の内容をコミット&プッシュしてください。

pipeline {
    agent any

    stages {
        stage('Checkout') {
            steps {
                echo 'Checking out from Git...'
            }
        }
        stage('Build & Test') {
            steps {
                echo 'Building and Running Tests...'
                sh 'ls -al' // ファイル一覧を表示して、取得できているか確認
            }
        }
    }
}

ステップ2:JenkinsにGitHubの認証情報を登録

Jenkinsがプライベートリポジトリを読み取れるように設定します(公開リポジトリでもこの手順を覚えておくと便利です)。

  1. Jenkinsダッシュボード > 「Jenkinsの管理」 > 「Credentials(認証情報)」
  2. (global) などをクリックし、「Add Credentials」
  3. Kind: Username with password を選択。
  4. Username: GitHubのユーザー名。
  5. Password: GitHubで発行した Personal Access Token (PAT)
    • ※パスワードそのものではなく、GitHubの設定(Developer settings)から発行したトークンを使います。
  6. ID: github-auth (後で使う識別子です)。

ステップ3:パイプラインジョブの作成

  1. 「新規ジョブ作成」をクリック。
  2. 名前を Git-Connected-Pipeline とし、**「パイプライン」**を選択してOK。
  3. 設定画面の 「Pipeline」 セクションへ移動。
  4. DefinitionPipeline script from SCM に変更します。
  5. SCM: Git を選択。
  6. Repository URL: あなたのGitHubリポジトリのURL(HTTPS)を入力。
  7. Credentials: 先ほど登録した github-auth を選択。
  8. Branch Specifier: */main (または */master)。
  9. Script Path: Jenkinsfile となっていることを確認。

「保存」 を押して、一度手動で 「ビルド実行」 してみてください。GitHubからコードがダウンロードされ、ログにファイル一覧が表示されれば成功です!


4. 自動化の仕上げ(Webhookの設定)

今のままでは手動実行が必要ですが、GitHubの Settings > Webhooks で、JenkinsのURL(http://your-jenkins-url/github-webhook/)を登録することで、プッシュ即実行が可能になります。

注意: ローカルPC(localhost)で動かしている場合、GitHub(インターネット側)からあなたのPCへ通知を送るには、ngrok などのトンネルツールが必要です。


5. まとめ

これで、「コードが更新されたら、自動でJenkinsが動き出す」という開発サイクルの基盤が整いました。

  • Git: ソースコードの保管場所
  • Jenkinsfile: 自動化の手順書
  • Jenkins: 実行エンジン

この3つが揃うことで、あなたの開発効率は劇的に向上します。


投稿日

カテゴリー:

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です