Jenkins入門の入門

Published: 2016年2月10日 by tomsato

◼︎ 概要

Jenkinsについて概要とインストール方法を調べます

入門の入門ということでCIについてからメリット、インストールまでまとめます

入門を読み終わった後は JenkinsでGitにPush時に自動ビルドさせる も書いてみましたので良かったら拝見してください

◼︎ 継続的インテグレーション(CI)とは

wikipediaより

継続的インテグレーション、CI(英: continuous integration)とは、主にプログラマーのアプリケーション作成時の品質改善や納期の短縮のための習慣のことである。

狭義的にはソフトウェアやサービス、システムが動作するか、こまめに確認しながら開発を進める開発手法

◼︎ 継続的インテグレーションのメリット

  • 手戻りの削減、品質の維持
  • 環境に依存しない
  • 自動化による作業コストの削減
  • 継続的に改善し続けられる

◼︎ Jenkinsとは

Javaで書かれたオープンソース継続的インテグレーションツール
Jenkinsではジョブを作成して自動or手動実行させることができる
例えば

echo "Hello jenkins!"

などの任意のコマンドからビルド・テスト・デプロイなど色々なものを登録して実行していくことができる

◼︎ イメージ

シェルを実行するだけのジョブを作成する
jenkins01
「ビルドの実行」から実行できる
jenkins02
青丸は成功したことを表す (失敗は赤丸)
jenkins03
詳細な出力を確認できる
jenkins04

◼︎ Jenkinsでできることやメリット

  • ソースコードの自動ビルド
  • 定期的なビルドによるコンパイルエラー、バグの早期発見
  • ソースコードの解析、統計
  • テストの自動化
  • 分散ビルドで早く
  • Web UIにより設定ができる
  • Git連携などができてコードを更新すると自動的にテストを実行できる

◼︎ コピペで始めるJenkins

Linux環境にJenkinsを導入してみる

// Jenkins を動かすためには、Java 6 以上があらかじめインストールされている必要がある
$ sudo yum install wget java-1.7.0-openjdk

// yum リポジトリの追加
//   CentOS / RedHat のパッケージ管理機能 yum を利用して Jenkins をインストールする
//   公式に yum リポジトリを提供してくれていますので、そのリポジトリを利用します
$ sudo wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
$ sudo rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key

// リポジトリの追加ができたら、yumでインストール
$ sudo yum install jenkins

// Jnekinsの起動
$ sudo service jenkins start
Starting Jenkins  
 

以下のURLにアクセスするとJenkinの画面が見れる
http://(Jenkinsを導入したホスト名):8080/
jenkins
パスワードを聞かれた場合

ユーザ:admin
パスワード:以下のコマンドで確認
$ sudo cat /var/lib/jenkins/secrets/initialAdminPassword

噂のJenkinsおじさんが表示される

◼︎ 補足

インストールされたファイルの確認

/usr/lib/jenkins/jenkins.war : Jenkins本体
/etc/sysconfig/jenkins : 設定ファイル
/etc/rc.d/init.d/jenkins : 起動スクリプト

OS起動時に自動的に起動するように設定

$ sudo chkconfig jenkins on

8080(Jenkinsデフォルト)のPORTはすでに使っているので違うPORTに変更したい

// 修正するファイルのバックアップを作成
$ sudo cp -p /etc/sysconfig/jenkins{,.`date +%Y%m%d`}

// 56行目のここの文面を修正する
$ sudo grep -n JENKINS_PORT /etc/sysconfig/jenkins
56:JENKINS_PORT="8080"

// sedで置換する
$ sudo sed -i -e 's/JENKINS_PORT="8080"/JENKINS_PORT="8008"/' /etc/sysconfig/jenkins

// 修正されたことを確認
$ sudo diff /etc/sysconfig/jenkins /etc/sysconfig/jenkins.`date +%Y%m%d`</pre>
<pre>56c56 < JENKINS_PORT="8008" --- > JENKINS_PORT="8080" // stop,start $ sudo service jenkins stop; sudo service jenkins start; 

◼︎ 参考サイト

蛇足:Jenkinsおじさんはビルド失敗すると怒る

コメントを書く

※ 個別に返信が必要な時のみご記入ください

※ Emailは公開されません

※ 承認されると名前・コメントが下記に表示されます

コメント一覧

最近の投稿

ビジュアルリグレッションテストについてまとめ、ネットで調べると数多くのライブラリがありどれがどんな立ち位置なのか全体像がわかりずらかったのでどんな種類があるのか入門の入門としてまとめます、またPlaywrightを使って実際に触ってみました

社内ツールなどの超小規模なAPIをGolangで実装する際にフレームワークを使うべきかを、実際にnet/httpを使った実装とフレームワークを使った実装を比較することでどれだけ優位性があるかを見ていきたいと思います。今回はフレームワークにはシンプルで使いやすそうなEchoを使うことにします。

vue-pdfを使ってNuxt.jsで作成しているアプリケーションに pdfスライドを表示させるサンプルを作成しました README.md通りに実装してもうまくいかないところがあったのでそのあたり含めてまとめます

Vue.js / Nuxt.jsにおけるログインの実装方法をまとめる Auth0やNuxt.jsのAuth Moduleとmiddlewareについて調べつつサンプルを作成することで理解を深める

コンポーネント設計について考える Atomic DesignやPresentational Component, Container Componentについてまとめつつ 自分だったらVue.js / Nuxt.jsでどういうコンポーネント設計にするかについてまとめます

カテゴリ一覧

タグ一覧