SlideShare uma empresa Scribd logo
1 de 54
Baixar para ler offline
恋するJenkins
 2012.11.22 ナカオヒロシ
自己紹介

• ナカオヒロシ
• フリーランスのプログラマ
• 最近は RoR とか WebGL とか
• 美容室の立ちあげとか
みなさん
恋してますか?
超越している
        5%   してる
             30%



 してない
  65%




恋してますか?
ボクは
恋してます
このお方、Jenkinsに
と、いうことで


• 今日はJenkinsについて、お話します。
CI/Jenkins
ってなーに?
CI

• 継続的インテグレーション
 Coutinuous Integration

• ビルド、テストなどを継続的に実行
• 問題の早期発見
 品質の維持
Jenkins

• CIツール
• GUIでラクラク
• プラグインが豊富なので、
 色々なシーンで活用!
活用シーン

• 自動ビルドでの品質維持
• デプロイの自動化
• 夜間バッチ処理
 実行結果も画面で確認
 ジョブのチェーンも可能
Installing Jenkins!!
Macでインスコ
# Homebrew でインストールできます
$ brew install jenkins


# Jenkins のバージョン、起動方法などを確認
$ brew info jenkins
jenkins: stable 1.486, HEAD
起動してみる
# brew info jenkins コマンドで起動方法を確認できます。


# 手動起動する場合(今回はコレで)
$ java -jar /usr/local/Cellar/jenkins/1.490/libexec/jenkins.war


# Mac起動時に自動起動させる場合
$ mkdir -p /Library/LaunchAgents
$ ln -nfs /usr/local/Cellar/jenkins/1.490/homebrew.mxcl.jenkins.plist /Library/
LaunchAgents/
$ launchctl load -w /Library/LaunchAgents/homebrew.mxcl.jenkins.plist


# 常に起動させるならサーバでやったほうがいいっすね。
localhost:8080
Mac 以外

• http://jenkins-ci.org
• インストールパッケージも置いてるよ
 (コッチ使ったほうがラク?)
Rails + Github
 + Jenkins!!
やること
• Git に Rails アプリがあるよ
 (今回はGithubにサンプルを作成)

• Jenkins で clone して、
 RSpec のテストを実行!

• テストに失敗したら、
 メールでお知らせ!
今回の前提

• Git インストール済み
• Ruby(RVM, rb-env), sqlite3 などの
 Rails実行に必要な環境も

• Rails アプリに RSpec で
 テストが書かれている
まずは準備
プラグイン

• Jenkins には色々なプラグインが
 あります

• プロジェクトに必要なプラグインを
 インストールします
プラグインの管理
今回使うもの

• Git
• ruby-runtime, ruby metrics, Rake,
  (Rvm or rb-env)

• インストール後は、
  要再起動
システムの設定
今回使うもの
• Git, Git plugin
  GitのPATHとか設定とか

• Rake
  Rvm を使っている場合はココに PATH

• E-mail 通知
  (Gmail とかお好みで)
プロジェクトの追加
プロジェクト

• トップ画面から「新規ジョブ作成」
• ジョブ名は適当に
• 「フリースタイル・プロジェクトのビ
 ルド」を選択
新規ジョブ作成
プロジェクトの設定

• トップ画面から「新規ジョブ作成」
• ジョブ名は適当に
• 「フリースタイル・プロジェクトのビ
 ルド」を選択
ジョブの設定
ジョブの設定#1
• ソースコード管理システム
 • Git
  ↓サンプル
  git@github.com:hiroshinakao/
  jenkins_sandbox.git
  ブランチは develop
ジョブの設定#2

• ビルドトリガ
 • 「定期的に実行」
 • スケジュール(cron書式
  30分毎に実行する場合は
  */30 * * * *
ジョブの設定#3
• ビルド環境
 • rbenv
  rubyのバージョンを指定

 • rvm
   #{バージョン}@#{gemset名}
   1.9.3-p286@jenkins_sandbox
ジョブの設定#4

• ビルド
 • ビルド手順の追加
  「シェルの実行」
ジョブの設定#4
bundle install --without=production
bundle exec rake db:migrate:reset
bundle exec rake spec


# 必要なgemをインスコして
# スキーマを作って
# テストを実行している
# だけだね
ジョブの設定#5

• ビルド後の処理
 • Publish Rcov report
   ディレクトリ: ./coverage/rcov

 • E-mail 通知
   宛先は適当に
ジョブの設定#6


• 「保存」をクリックして準備終了!!
実行してみよー
手動実行

• 「ビルドの実行」をクリック!!
 ジョブが開始されます

• 「コンソール出力」で
 実行中の出力を確認できます
ジョブ画面
コンソール出力
実行結果

• 青いアイコンが表示
 => 成功!!

• 赤いアイコンが表示
 => 失敗…orz
 => メール送信されます
カバレッジの確認
カバレッジの確認


• 「Rcov report」をクリック!!
 カバレッジが表形式で表示されます
前提

• RSpec のテストがあること
• rcov 形式でテスト結果を出力設定
 simplecov,
 simplecov-rcov

• 詳しくはgitの履歴見て
カバレッジ表
カバレッジ詳細
Jenkins + Rails
• Rails Best Practices
• DRY 検査 => コピペの検出
• RDoc生成
• Capistrano でデプロイ
• まぁ、色々できますw
もっと詳しく
jenkins-ci.org
本があるよ
Q and A
素敵な恋を
してください
おしまい

Mais conteúdo relacionado

Mais procurados

テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
Ohishi Mikage
 
[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
hirooooo
 

Mais procurados (20)

Multibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだことMultibranch pipelineでいろいろ学んだこと
Multibranch pipelineでいろいろ学んだこと
 
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
Javaでやってみる The Twelve Factor App JJUG-CCC 2014 Fall 講演資料
 
Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!Git & GitHub & kintone でウルトラハッピー!
Git & GitHub & kintone でウルトラハッピー!
 
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 20130から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
0から学んだポストモダンPerl @ YAPC::Asia Tokyo 2013
 
スッとGoを取り入れる
スッとGoを取り入れるスッとGoを取り入れる
スッとGoを取り入れる
 
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
Dockerで始める Java EE アプリケーション開発 for JJUG CCC 2017
 
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasiaサンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
サンタクロースを支えるIT技術 @M_Ishikawa #yapcasia
 
Skinny framework勉強会
Skinny framework勉強会Skinny framework勉強会
Skinny framework勉強会
 
Gradle入門
Gradle入門Gradle入門
Gradle入門
 
第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座第9回Jenkins勉強会 超簡単Pipeline講座
第9回Jenkins勉強会 超簡単Pipeline講座
 
テストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテストテストしなイカ? Seleniumで自動ブラウザテスト
テストしなイカ? Seleniumで自動ブラウザテスト
 
[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう[社内勉強会]Gradleを使おう
[社内勉強会]Gradleを使おう
 
React NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみようReact NativeでTwitterクライアントを作ってみよう
React NativeでTwitterクライアントを作ってみよう
 
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
テンプレートエンジンにMixer2を使うとSeleniumでのテストもラクになるかもねという話
 
【19-B-4】 そろそろ俺たちの本気を見せてやるぜ!~ マイクロソフトとOSSごった煮 DevOps 衝撃デモシリーズ!
【19-B-4】 そろそろ俺たちの本気を見せてやるぜ!~ マイクロソフトとOSSごった煮 DevOps 衝撃デモシリーズ!【19-B-4】 そろそろ俺たちの本気を見せてやるぜ!~ マイクロソフトとOSSごった煮 DevOps 衝撃デモシリーズ!
【19-B-4】 そろそろ俺たちの本気を見せてやるぜ!~ マイクロソフトとOSSごった煮 DevOps 衝撃デモシリーズ!
 
進撃のSbt
進撃のSbt進撃のSbt
進撃のSbt
 
kintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテストkintoneチームを支えるSeleniumテスト
kintoneチームを支えるSeleniumテスト
 
[jjug] Java と Benchmark
[jjug] Java と Benchmark[jjug] Java と Benchmark
[jjug] Java と Benchmark
 
20090828 Webconlocal
20090828 Webconlocal20090828 Webconlocal
20090828 Webconlocal
 
Jasst15 webjasst
Jasst15 webjasstJasst15 webjasst
Jasst15 webjasst
 

Destaque

UKR Capabilities Statement
UKR Capabilities StatementUKR Capabilities Statement
UKR Capabilities Statement
UK-Resource
 

Destaque (18)

UKR Capabilities Statement
UKR Capabilities StatementUKR Capabilities Statement
UKR Capabilities Statement
 
Emat689 June09
Emat689 June09Emat689 June09
Emat689 June09
 
M U S E
M U S EM U S E
M U S E
 
Autismo
AutismoAutismo
Autismo
 
Malaysia Boleh
Malaysia BolehMalaysia Boleh
Malaysia Boleh
 
Actividad 10-4
Actividad 10-4Actividad 10-4
Actividad 10-4
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
2009.08.20 Fisaセミナー
2009.08.20 Fisaセミナー2009.08.20 Fisaセミナー
2009.08.20 Fisaセミナー
 
Cisco Collaboration Summit 2012 Keynote
Cisco Collaboration Summit 2012 KeynoteCisco Collaboration Summit 2012 Keynote
Cisco Collaboration Summit 2012 Keynote
 
North Eastern Arms
North Eastern ArmsNorth Eastern Arms
North Eastern Arms
 
Rails3勘所
Rails3勘所Rails3勘所
Rails3勘所
 
Libra meter meter buddy handbook
Libra meter   meter buddy handbookLibra meter   meter buddy handbook
Libra meter meter buddy handbook
 
無料で作るFlex/AIR
無料で作るFlex/AIR無料で作るFlex/AIR
無料で作るFlex/AIR
 
2014.06.13 - Cloud Brokerage, Pourquoi, Comment ? - IBM #CloudAccelerate - L...
2014.06.13 -  Cloud Brokerage, Pourquoi, Comment ? - IBM #CloudAccelerate - L...2014.06.13 -  Cloud Brokerage, Pourquoi, Comment ? - IBM #CloudAccelerate - L...
2014.06.13 - Cloud Brokerage, Pourquoi, Comment ? - IBM #CloudAccelerate - L...
 
Adecuacion curricular-a-partir-de-las-necesidades-educativas-especiales
Adecuacion curricular-a-partir-de-las-necesidades-educativas-especialesAdecuacion curricular-a-partir-de-las-necesidades-educativas-especiales
Adecuacion curricular-a-partir-de-las-necesidades-educativas-especiales
 
The Dust Bowl
The Dust BowlThe Dust Bowl
The Dust Bowl
 
Simce 2° 4° básicos - slideshare
Simce 2°   4° básicos - slideshareSimce 2°   4° básicos - slideshare
Simce 2° 4° básicos - slideshare
 
UKR Sugar Refining
UKR Sugar RefiningUKR Sugar Refining
UKR Sugar Refining
 

Semelhante a 恋するJenkins

継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
Takayuki Kondou
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagire
Takashi Imagire
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
Hiro Yoshioka
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
Daisuke Sugai
 

Semelhante a 恋するJenkins (20)

Jenkinsstudy#4kokawa
Jenkinsstudy#4kokawaJenkinsstudy#4kokawa
Jenkinsstudy#4kokawa
 
はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入はてなにおける継続的デプロイメントの現状と Docker の導入
はてなにおける継続的デプロイメントの現状と Docker の導入
 
作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく作る人から作りながら運用する人になっていく
作る人から作りながら運用する人になっていく
 
継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング継続的インテグレーション3分クッキング
継続的インテグレーション3分クッキング
 
CIBC workshop by imagire
CIBC workshop by imagireCIBC workshop by imagire
CIBC workshop by imagire
 
テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1テスト勉強会よしおか100311 1
テスト勉強会よしおか100311 1
 
Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~Jenkins使ってみた~Windows編~
Jenkins使ってみた~Windows編~
 
大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について大規模ソフトウェア開発とテストの経験について
大規模ソフトウェア開発とテストの経験について
 
TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02TDDBC osaka 2012/06/02
TDDBC osaka 2012/06/02
 
誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング誰にでもできるパフォーマンスチューニング
誰にでもできるパフォーマンスチューニング
 
Jenkins 再入門
Jenkins 再入門Jenkins 再入門
Jenkins 再入門
 
JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例JenkinsとSeleniumの活用事例
JenkinsとSeleniumの活用事例
 
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
密着! nibohsiデプロイ 13:00-13:05 - railsアプリのデプロイ事例 -
 
Intalio japan special cloud workshop
Intalio japan special cloud workshopIntalio japan special cloud workshop
Intalio japan special cloud workshop
 
退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話退屈なブラウザ作業をpuppeteerにやらせたいお話
退屈なブラウザ作業をpuppeteerにやらせたいお話
 
邪道Jenkins
邪道Jenkins邪道Jenkins
邪道Jenkins
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
ALMツールたべくらべ
ALMツールたべくらべALMツールたべくらべ
ALMツールたべくらべ
 
Voicepic@FukuiMASeminar
Voicepic@FukuiMASeminarVoicepic@FukuiMASeminar
Voicepic@FukuiMASeminar
 
JUC2012
JUC2012JUC2012
JUC2012
 

恋するJenkins