<   2014年 05月 ( 2 )   > この月の画像一覧
jenkinsでgslintを用いて静的解析する
1. Jenkinsをインストールする。
debianの場合は以下のようになる。

# 参考:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu
wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins-ci.org/debian binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

2. jslintの結果を集計できるようにViolationsを入手する
Jenkinsの管理 > プラグインマネージャで利用可能タブから「Violations」を指定してインストールする。

3. gjslintをインストールする。

3.1 easy_installを使えるようにする
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

3.2 gjslintをインストールする
easy_install http://closure-linter.googlecode.com/files/closure_linter-latest.tar.gz

インストールしたgslintは次のようにして使える
gjslint --disable 110,1 -r src

--disable コンマ区切りで無視するエラーを指定できる
-r でディレクトリを再帰的に操作できる

ただし、これだけだと、xmlで集計できない。

4. closure-linter-wrapperをインストールする

4.1 まずnodeをインストールしておく。
wget http://nodejs.org/dist/v0.10.25/node-v0.10.25.tar.gz
tar zxvf node-v0.10.25.tar.gz
cd node-v0.10.25
./configure
make install

4.2 npmを用いてインストールする
npm install -g closure-linter-wrapper

4.3 次のようなtest.jsファイルを作る
var argv = process.argv;
var gjslint = require('closure-linter-wrapper').gjslint;
var flagsArray = [
  '--nostrict',
  '--nojsdoc',
  '--disable 14'
];
console.log(argv[2] + 'src/*.js');

gjslint({
    src: [
      argv[2] + 'src/*.js'
    ],
    flags: flagsArray
    ,reporter: {
      name: 'gjslint_xml',
      dest: argv[2] + 'gjslint.xml'
    }
  },
  function (err, result) {
  }
);
srcフォルダのなかに解析対象のファイルを入れておく。

5. Jenkinsの設定
5.1 シェルスクリプトの実行で次のようなコマンドをいれる
NODE_PATH=/usr/local/lib/node_modules
export NODE_PATH
node ${WORKSPACE}/test.js ${WORKSPACE}/

5.2 ビルド後の処理のjslintに出力ファイルを指定しておく。
b0232065_21404268.png
ビルドをすると次のように静的解析のレポートがでる。
b0232065_21425396.png
b0232065_21430497.png


[PR]
by mima_ita | 2014-05-18 21:43 | 実験
シェルスクリプトでRESTAPI経由のRedmineのチケット登録

下記のホームページを参考にするとできる。
 RedmineのREST APIを使ってみる。   日々是精進。さまより

でもこのままだと改行ができない。
この原因はcurlで-dオプションを使っているからで、これを使うと改行コード除去してしまう。

以下のように--data-binaryをもちいればいい。
curl -o result.xml -s -H "Content-type: text/xml" -X POST --data-binary "@${CURLTEMP}" "${REDMINE_URL}/issues.xml?key=${API_KEY} > result"

この後、以下のようにすると改行コードつきのチケットを作れる
./redmine_postIssue.sh -u http://ほげ/redmine -k APIキー -p test -t 1 -s TEST -d "abct\n\r\ntesta"
これで改


[PR]
by mima_ita | 2014-05-12 21:55 | 実験



実験ですお
検索
カテゴリ
最新の記事
.NET4.5におけるasy..
at 2014-07-02 00:46
.NETでTwitterを検..
at 2014-06-29 00:49
Redmineのプラグインで..
at 2014-06-28 03:29
IO.popenのwrite..
at 2014-06-28 03:25
RedmineのWikiでU..
at 2014-06-28 03:16
以前の記事
最新のトラックバック
その他のジャンル
ブログパーツ