ぶれすとつーる

だいたいjavascript

jenkinsとjslintを連携させてみたよ

jslintjenkinsを連携させたかったので色々調べてみた。

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初めてだったり酔っぱらってたりするので不要な手順とかもっといい手順とかあったら教えて抱けるとうれしいです。