JenkinsでGitにPush時に自動ビルドさせる

■ 目次

  1. 概要
  2. 手順
    1. GitHubの設定
    2. Jenkinsの設定
    3. 実行してみる
  3. 実行
    1. 手動実行
    2. Pushする

■ 概要

以前 Jenkins入門の入門 でJenkinsの概要と導入について調べましたが
1歩進んでGitHubと連携してGitにPushした時に自動ビルドを走らせるまでをやってみます

ユニットテスト(単体テスト)やビルドなどを自動で走らせたい時に良いかと思います
ここから応用するとプルリクエストをマージさせた時に走らせたりなど色々なタイミングで自動ビルドを行うことができます

■ 手順

GitHubの設定

※ 以下全てJenkinsサーバでの作業
GitHubにSSHを行ってknown_hostsに追加を行う

$ sudo su -s /bin/bash jenkins
$ mkdir ~/.ssh;cd ~/.ssh
// 自分のメールアドレス
$ ssh-keygen -t rsa -C test@example.com
// パスワードを聞かれるが空で登録する

$ chmod 600 id_rsa
$ vim ~/.ssh/config
Host github
  HostName github.com
  IdentityFile ~/.ssh/id_rsa
  User git

以下で出力される内容は次で使うのでコピーする … ①

$ cat id_rsa.pub
ssh-rsa ...略...

https://github.com/settings/keys
GitHubの「SSH Keys」にアクセスして
「New SSH Key」を押す

Title 何でも良い、ここではtestとする
Key ①でコピーした内容を貼付ける

この状態でGitHubにsshアクセスする

$ ssh -T git@github.com
The authenticity of host 'github.com (...)' can't be established.
RSA key fingerprint is ...
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,...' (RSA) to the list of known hosts.
Hi tomsato! You've successfully authenticated, but GitHub does not provide shell access.

このようになればknown hostsが追加されてGitHub側の設定は完了

Jenkinsの設定

まずはGitHubと連携させるためのプラグインを入れる

プラグイン管理より:http://{Jenkinsサーバ}:8080/pluginManager/

とりあえず「アップデート」のタブから全てをチェックして「再起動せずにインストール」を押す
その後「利用可能」タブから「Git Plugin」をチェックして「再起動せずにインストール」を押す
画面遷移後「インストール完了後、ジョブがなければJenkinsを再起動する」で再起動して反映もしておく

Jenkinsの設定を行う

  1. 「新規ジョブ作成」から
  2. 「ジョブ名」(ここではcommitビルドとする)を入力
  3. 「フリースタイル・プロジェクトのビルド」にチェック
  4. 「OK」で作成

Jenkisn01

commitビルドのページに遷移して「設定」よりジョブの設定ページに遷移する

Jenkins02

入力項目

項目 説明 記述例
プロジェクト名 ジョブの名前 commitビルド
ソースコード管理 何を使うか Git
Repository URL:git@github.com:{accountname}/{repo}.git
ビルド・トリガ 何をトリガに実行するか SCMをポーリング
スケジュール:「* * * * *」
ビルド 何を実行するか シェルの実行
シェルスクリプト:「echo ‘Hello World!!’」

設定イメージ

Jenskins03
Jenkins04Jenkins05

■ 手順

手動実行

ここまで設定できたら一度ジョブを実行する

ジョブのページから「ビルドの実行」でジョブを実行する

正常に実行できることを確認する

Pushする

$ cd your_repository/

$ vim README.md
$ git add .
$ git commit -m 'test'
$ git push origin master

少しすると自動でcommitビルドが実行されることが確認できる


Be First to Comment

コメントを残す

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