1. なぜGitとJenkinsを連携させるのか?
手動で「ビルド」ボタンを押す運用だと、いつか必ず「テストし忘れ」や「古いバージョンのデプロイ」といったミスが起きます。
Gitと連携(自動化)することで、以下のようなメリットがあります。
- 即時フィードバック: コードを書いてプッシュした数分後には、テスト結果がわかります。
- Pipeline as Code: ビルドの手順を
Jenkinsfileという名前のファイルでリポジトリ(コード)と一緒に管理できます。 - ヒューマンエラーの排除: 「誰がいつやっても同じ手順」でビルドが行われます。
2. 連携の仕組み:Webhook(ウェブフック)
JenkinsがGitの更新を検知する方法は主に2つあります。
- ポーリング: Jenkinsが定期的に「更新ありますか?」とGitに聞きに行く。
- 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がプライベートリポジトリを読み取れるように設定します(公開リポジトリでもこの手順を覚えておくと便利です)。
- Jenkinsダッシュボード > 「Jenkinsの管理」 > 「Credentials(認証情報)」。
- (global) などをクリックし、「Add Credentials」。
- Kind:
Username with passwordを選択。 - Username: GitHubのユーザー名。
- Password: GitHubで発行した Personal Access Token (PAT)。
- ※パスワードそのものではなく、GitHubの設定(Developer settings)から発行したトークンを使います。
- ID:
github-auth(後で使う識別子です)。
ステップ3:パイプラインジョブの作成
- 「新規ジョブ作成」をクリック。
- 名前を
Git-Connected-Pipelineとし、**「パイプライン」**を選択してOK。 - 設定画面の 「Pipeline」 セクションへ移動。
- Definition を
Pipeline script from SCMに変更します。 - SCM:
Gitを選択。 - Repository URL: あなたのGitHubリポジトリのURL(HTTPS)を入力。
- Credentials: 先ほど登録した
github-authを選択。 - Branch Specifier:
*/main(または*/master)。 - 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つが揃うことで、あなたの開発効率は劇的に向上します。
コメントを残す