jenkinsとjslintを連携させてみたよ
jslintとjenkinsを連携させたかったので色々調べてみた。
jslint4javaっていうjslintのjavaバージョンがでていたのを発見したのでant使って連携してみました。
以下手順
とりあえず使用するプラグインいれておく
Jenkinsの管理 > プラグインの管理 > 以下のプラグインを追加
- Git Plugin
- ant
- Violations
jenkins再起動
次にjslintにかける対象のjobを作成します。
新規Jobの作成 > (Job名を決めてから)フリースタイル・プロジェクトのビルド > ok
プロジェクト名やもろもろ入力
今回はGitリポジトリ(Test)をjslintにかけるのリポジトリを設定
ちなみに今回対象にするリポジトリはこれ
(https://github.com/nazomikan/Test)
ビルドトリガのSCMをポーリングにチェックをいれる
スケジュールはcronの設定と同じ(今回は * * * * * )
ビルドの手順からantの呼び出しを選択してtargetをjslintにする
(後ほどつくるbuild.xml内でtargetをjslintって名前で作るので)
ビルド後の処理でReport Violationsにチェック
jslintの項目にbuild/logs/jslint.xmlと書く。
(これはlintをかけた結果のファイル置き場です。)
トップに戻ってビルドボタン(右っかわにある時計みたいなボタン)を押してビルドする。
antの設定してないので当然エラーでるけどworkspaceができあがる。
/var/lib/jenkins/jobs/Test(リポジトリ名) 以下にworkspaceディレクトリができてる
workspaceに移動してそこにbuild.xml作る
↓
<project default="jslint"> <target name="jslint" description="Run the JSLint tool on JS files"> <fileset dir="." id="jsfiles.raw"> <include name="**/*.js" /> <exclude name="**/*.min.js" /> </fileset> <pathconvert pathsep=" " property="jsfiles.clean" refid="jsfiles.raw" /> <exec executable="java" output="build/logs/jslint.xml"> <arg line="-jar build/lib/jslint4java.jar --report xml ${jsfiles.clean}" /> </exec> </target> </project>
jqueryとか外部のライブラリを使ってるテスト不要なやつとかはうまいことexcludeにいれるようにしましょう。
同一階層に以下のようにディレクトリ作る(jenkinsユーザが実行できるように実行権限をつけて)
workspace/ build.xml build/ lib/ logs/
lib以下にjslintのjava版のjarファイルを jslint4java.jar って名前にリネームして配置
ここからダウンロードできるよ。
jslint4java-2.0.2-dist.zip jslint4java-2.0.2 Featured
これを使う。
あと、ant使うのでいれてなければinstall (java/jdkも入ってなければいれる)
yum install -y ant
そして再ビルド
画像通り青色になってたら多分うまくいってる
ビルド番号をクリックしてそのビルドの詳細へ。
なんかjslintって書いたグラフがあるとおもうのでそれをクリック
jslintでエラーがでたファイルが列挙されてるのでファイル名をクリックして詳細へ。
エラーがでてるところにマウスカーソルあてるとjslintの結果がでてきます。
おわり。
ミドルウェアに弱かったりjenkins初めてだったり酔っぱらってたりするので不要な手順とかもっといい手順とかあったら教えて抱けるとうれしいです。