#author("2017-02-17T14:58:19+09:00","default:wikiwriter","wikiwriter")
&tag(Jenkins);
*目次 [#rb313331]
#contents
*関連ページ [#a35094ae]
*参考情報 [#ob6dde29]
-[[Jenkins:https://jenkins-ci.org/]]

*OS X El Capitanにインストール [#b1bf15bd]

**warファイルのダウンロード [#i757b5c8]
-[[Jenkins:https://jenkins-ci.org/]]からjenkins.warをダウンロードしTomcatに配備する。

**設定ファイルの修正 [#h72c4b3f]
-tomcat-launchd.shに以下を追加。
 export JENKINS_HOME=/opt/home/jenkins
-JENKINS_HOMEのパーミッションを「_www:_www」に変更しておく。

※この段階でTomcat経由では動くはず。

**リバースプロキシの設定 [#q7bf3743]
-まじめに設定しておかないと「リバースプロキシの設定がおかしいです」といわれる。
#pre{{
    # To Tomcat
    <IfModule mod_proxy_ajp.c>
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>
        ProxyPass /jenkins ajp://localhost:8009/jenkins nocanon
        ProxyRequests off
        AllowEncodedSlashes nodecode
    </IfModule>
}}
-ProxyRequests OFFとAllowEncodedSlashes nodecodeとno canonあたりが重要らしい。

*Rails基本プロジェクトの作成 [#k76b023c]
**プラグインのインストール [#v506040a]
-Railsプロジェクトをビルドする場合、以下のプラグインをインストールしておく。
-Jenkinsの管理 > プラグイン > 利用可能より。
-- Rake plugin
-- rbenv plugin
-- git plugin
-- RubyMetrics plugin for Jenkins
**Jobの作成 [#be301ac2]
-フリースタイルJobを作成
-ソースコード管理をgitとする。
-rbenv build wrapperを有効にする。高度な設定でRBENV_ROOTを以下のように設定。
 $JENKINS_HOME/.rbenv
-ビルド欄に以下を指定。rake db:migrateはdevelopment環境をデフォルトとしてしようするが、rake testは自動的にdevelopment環境をコピーするのでこれで問題ない。NOKOGIRI_USE_SYSTEM_LIBRARIESはNokogiriがビルドできないときだけ指定。
#pre{{
export NOKOGIRI_USE_SYSTEM_LIBRARIES=1
bundle install --path=vendor/bundle
bundle exec rake db:migrate
bundle exec rake test
}}
-ビルド実行するとテストできる。


**2回目からのJobの作成 [#d7895553]
-もともとあるRubyプロジェクトをコピーするのが簡単。
-プロジェクト名やgitのパスを修正する。

*Tips [#add5412f]

**git pushで自動ビルドしたい [#k782bf2b]
-gitのベアリポジトリにフックを仕込む。
-GitBucketを使っているならば、サーバー設定のServer HooksのWebhooksを使えばよい。
-URLを指定しておけば呼び出してくれる
 http://server/jenkins/job/my-job/build?delay=0sec
**環境変数を知りたい [#kb832625]
-Jobを作成してシェルの実行に以下を指定
#pre{{
whoami
echo $HOME
}}
-テスト実行すると実行ユーザーやホームディレクトリを確認することができる。

**成功・失敗時にメールを送信したい [#tbbbb9ee]
-Jenkinsのデフォルト状態ではビルド失敗時にしかメールが送信されない。
-Email-extプラグインを使用すれば成功時にもメールを送信できるようになる。SMTPサーバーの設定などはプラグインに引き継がれないのではじめからEmail-extプラグインを入れて設定したほうがよいかもしれない。

***グローバル設定 [#cfeb0e42]
-Jenkinsの管理から「拡張E-mail通知」を選び、SMTPサーバーなどの設定を行う。
-SMTPサーバー、デフォルトのE-mailのサフィックス、SMTP認証あたりを設定しておく。

***プロジェクトごとの設定 [#f76fd1ed]
-プロジェクトの「拡張E-mail通知」を選び、TriggersをAlwaysにする。



*トラブルシューティング [#a69a8978]
**ImageMagickを使っているプロジェクトでラー [#r5919f8a]
-「can't find Magick-config or pkg-config」エラーが発生する
-グローバル設定で/opt/local/binを追加する。

**rbenvでエラー [#o3cbb675]
-rbenvを使っているプロジェクトで以下のようなエラーが表示される
#pre{{
[demo-job] $ /bin/sh -xe /opt/home/tomcat/temp/hudson2541636611034405808.sh
+ bundle install --path vendor/bundle
There was an error while trying to write to
`/Library/WebServer/.bundle/cache/compact_index/rubygems.org.443.29b0360b937aa4d161703e6160654e47`.
}}
-[[Bundle run as user with no home directory fails · Issue #4481 · bundler/bundler:https://github.com/bundler/bundler/issues/4481]]によるとどうやらホームディレクトリに何やら書き込もうとしているのが原因っぽい。
-Jenkinsの環境設定でHOMEを/opt/home/jenkinsに設定したらとりあえず位血した。

***rmagickのエラー [#ec8b7487]
-以下のエラーが発生した
 Gem Load Error is: This installation of RMagick was configured with ImageMagick 6.9.3 but ImageMagick 6.9.4-4 is in use.
-Gemfile.lockは同一のままImageMagickをバージョンアップしたのが原因?
-Jenkinsのタスクを以下のように一端変更してみた。
#pre{{
rm -rf vendor/bundle
bundle install --path vendor/bundle
bundle exec rake db:migrate
bundle exec rspec spec
bundle exec rake test

}}
-もしくは[[Is there any way to cleanup jenkin workspace?? I am using AccuRev as version control tool - Stack Overflow:http://stackoverflow.com/questions/28683914/is-there-any-way-to-cleanup-jenkin-workspace-i-am-using-accurev-as-version-con]]

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS