Jenkins勉強会に行ってきた

2015.05.30に行われた「Jenkins勉強会 第1回 Jenkins初期構築と運用について」に行ってきた。

jenkins-ug-okinawa.doorkeeper.jp

今更感満載だが、じっくり触れていなかったので
ゴニョゴニョできて良かった。

実際の導入話も聴けたし、(主に懇親会でw)情報交換もできたので、楽しいひと時を過ごせたなと。
次回はSeleniumをがっつり回せるようにしたい。

イベント自体の流れなどは、こちらのエントリの方が詳しいです。

takkuru98.ti-da.net

以下、自分メモ。
途中までしかできてない & ほぼSelenium・・


13:00 〜 とあるプロジェクトにおけるJenkinsの導入実績

  • 精神論より仕組み
    • 週1でレビューしようではなく、JenkinsでOKじゃないとだめという風にする
  • 実際のケース
    • リリース手順が多くて大変
      • リリースに丸二日・・
    • ハインリッヒの法則
      • 1:29:300
    • Jenkins導入後 -> 0.5日に短縮
      • 導入するのはどのぐらいかかったんだろう?
        • ステージングが全く同じ環境があったので、3営業日で検証終了
  • 自動化出来る作業は計算機に委任する
  • Jenkinsをアップデートする動機は?
    • 新しいPluginが対応してないとか
  • Jenkinsのバックアップはディレクトリごとtarで固めてとか、PluginとかでOK
    • グリーとかはJenkins用にリソース結構割いてる
    • Jenkinsが落ちても大丈夫な構成は要検討

オススメ書籍

13:30〜 Jenkins初期構築ハンズオン

cf. 今更始めるJenkins勉強会 チートシート一覧 - Qiita

もくもく

Jenkins + Selenium
cf. CentOS6.4 + Selenium の環境作成 - Qiita
cf. Ruby - CentOS上にてRSpec+Turnip+Capybara+Selenium Webdriver+Headlessでスクリーンショットを撮るまで - Qiita

$ sudo yum install xorg-x11-server-Xvfb
$ sudo yum install ImageMagick
$ sudo yum groupinstall "Japanese Support"

$ curl -L https://get.rvm.io | bash -s stable
$ source /home/vagrant/.rvm/scripts/rvm
$ rvm install 1.9.3

$ mkdir selenium
$ cd selenium
$ bundle init
$ vi Gemfile

Gemfile

# A sample Gemfile
source "https://rubygems.org"

# gem "rails"

gem "headless"
gem "selenium-webdriver"
gem "rspec"

 

$ bundle install
$ vi ~/.bash_profile

# 追加
export DISPLAY=:99

$ source ~/.bash_profile

# テスト
$ Xvfb :99 -screen 0 1024x768x24 &
$ firefox &

Audio関係のエラーがでるけど、使わないので無視
cf. ImageMagickとlibreofficeを使ったOffice->PDF->PNG変換について(コマンドライン編) - Qiita

The XKEYBOARD keymap compiler (xkbcomp) reports:
> Internal error:   Could not resolve keysym XF86AudioMicMute
Errors from xkbcomp are not fatal to the X server

Selenium試す

cf. Linux CUI環境でruby + selenium-webdriver - Qiita

エラー・・

nable to obtain stable firefox connection in 60 seconds (127.0.0.1:7055) (Selenium::WebDriver::Error::WebDriverError)

firefoxバージョンアップ?

$ firefox -v
Mozilla Firefox 38.0.1

$ gem list
selenium-webdriver (2.45.0)

Googleのキャプチャ取ってみる
cf. XvfbとFirefoxを使ってWebサイトのSSを撮る - 私の昆布

$ Xvfb :99 -screen 0 1024x768x24 &
$ firefox http://google.com/ &
$ import -window root test.png
$ ls
test.png

firefoxのたたき方間違ってたorz
cf. Xvfb+Firefoxで"Error: No running window found"となってハマりかけた話 - Qiita

# NG
$ Xvfb :1 &
$ DISPLAY=:1 firefox -remote "openURL(http://www.google.co.jp/)" &

# OK
$ Xvfb :1 &
$ firefox http://google.com/ &

Rubyのエラーorz

$ ruby test.rb
test.rb:33:in `block in <main>': undefined method `pp' for main:Object (NoMethodError)
    from /home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/nokogiri-1.6.6.2/lib/nokogiri/xml/node_set.rb:187:in `block in each'
    from /home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/nokogiri-1.6.6.2/lib/nokogiri/xml/node_set.rb:186:in `upto'
    from /home/vagrant/.rvm/gems/ruby-1.9.3-p551/gems/nokogiri-1.6.6.2/lib/nokogiri/xml/node_set.rb:186:in `each'
    from test.rb:32:in `<main>'

ppコマンドが無いみたいなので、pに変更すると・・

$ ruby test.rb
"http://ja.wikipedia.org/wiki/FIFA%E3%83%AF%E3%83%BC%E3%83%AB%E3%83%89%E3%82%AB%E3%83%83%E3%83%97"
"http://www.jfa.jp/nadeshikojapan/worldcup2015/"
"http://www.jfa.jp/nadeshikojapan/worldcup2015/schedule_result/"
"http://members.jcom.home.ne.jp/wcp/"
"http://blog.livedoor.jp/sekaiminzoku/archives/44234655.html"
"http://www.asahi.com/worldcup/"
"http://matome.naver.jp/topic/1LvDt"
"http://www.soccer-king.jp/news/wc"
"http://www.fujitv.co.jp/sports/vabonet/wcv/"

キタワァ・゚゚・:.。..。.:・゚(n‘∀‘)η゚・:.。..。.:・゚゚・ !!!!!

15:30 〜 Jenkins運用についてのブレインストーミング

お題

  • 開発で導入したいこと
  • クラウドでJenkinsを導入するメリット
  • 社内でJenkinsを導入するには
    • 導入障壁って何だろう?
  • 次回以降やっていきたいこと

その他: 雑感

  • インストールは -y オプションあってもいいかな
  • 軽いBGMあってもいいかも
  • Jenkinsで軽いテスト(?)みたいなものをやってもいいかな
    • 放り出された感がしたかなと(^^;)
  • 次回は「#jenkinsug」を事前告知してみよう