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

Published: 2016年3月23日 by tomsato

概要

以前 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ビルドが実行されることが確認できる

Share

最近の投稿

NetlifyのSplit TestingとFunctionsについて使い方をまとめる Split TestingはGitHubのブランチをベースにしたA/Bテストを行うための機能のことで、FunctionsはNetlifyでAWS Lambdaを使うことができる

NetlifyとはHTMLなどの静的コンテンツのみで構成されたWebサイトを閲覧できる形で配信するWebサービス GitHubやBitbucket、GitLabなどと連携して使うことができて、リポジトリにプッシュすることで自動でCI/CDを行うことができる、無料枠が豊富で独自ドメインを設定可能

WordPressからJekyll(GitHub Pages)に移行した手順をまとめる。 お金的な事情や使いやすさなどの理由で無料のJekyll+GitHub Pagesに移行した。JekyllとはMarkdown等から静的ページを生成する静的サイトジェネレータ

Scala開発のためにScalaらしさをまとめる 言語設計者の設計思想を元にScalaらしさについてまとめる オブジェクト指向と関数型の融合について

StorybookとはUI開発環境を提供するツール React、React Native、Angular、Vueなどをサポートしている ユーザーは独立した開発環境でコンポーネントを個別に作成して挙動の確認をテストできたり、コンポーネントを一覧にしてカタログ化できるので他の人に紹介する時に使えたりする

カテゴリ一覧

タグ一覧