現在モヤモヤしていること
Jenkinsのビルド・トリガで「リモートからビルド」というのができるらしく
ネットで調べると、認証トークンというのが必要っぽい。
が、そもそも、ビルド・トリガで「リモートからビルド」というのが無い。
なぜだ?
これができれば、10分毎のSVNのポーリングとかしなくて良いのに・・・
2019/11/14追記
本屋でJenkinsの本を立ち読みしてたら古い本には
「リモートからビルド」の選択肢が無かった。
古いバージョンのJenkinsだと「リモートからビルド」の選択肢がなく
直接ビルドURLを指定する方式だったようだ。
追加でできるようにしたことをまとめてみた
Jenkins Sounds pluginの利用
10分おきのSVNポーリングでビルドが動くので
若干タイムラグがあるから、ビルド結果が音でわかるようにした。
ビルドが成功すると、初音ミク冒険記の「レベルアップ」の効果音
ビルドが失敗すると、初音ミク冒険記の「ゲームオーバー」の効果音
が鳴るようにしている。
<事前準備>
なお、ファイル形式はwavで2つのwavファイルを同じフォルダにおいてZipファイルにする。
ポイントはフォルダごと固めちゃダメってところ。
格納フォルダを開いて、上記の2ファイルを選択した状態でZIPにする必要がある。
<プラグインのインストール>
「Jenkinsの管理」-「プラグインの管理」から
「Jenkins Sounds plugin」をインストール
<プラグインの設定>
インストール後「Jenkinsの管理」-「システムの設定」で「Jenkins Sounds」のところの設定を行う。
file://プロトコルで事前準備したzipファイルを指定して、「適用」ボタンをクリック。
※左側のサイドメニューの「Sounds」が目立つのでそっちで指定するのかと思ったら
指定したファイル名を保存するボタンがなくて、一時困ったのだが、「システム設定」だったのね。
<ビルド後の処理の設定>
「Jenkins Sounds」を追加し
On BUild result:Success、チェックボックスはSuのみ、サウンドは前述のものを設定
同様にOn BUild resultがAbort、Failure、Unstableには、
対応するチェックボックスにチェックしてゲームオーバーの効果音を設定
これで音が鳴るので結構いいかも!
Jenkins Persona Pluginの利用
<事前準備>
もともとTraclightningに入っていた
C:\TracLight\projects\hudson\.hudson\persona\hudmi
を参考にし
C:\TracLight\projects\hudson\.hudson\persona\Miku
に以下のようなファイルを用意する。

<プラグインのインストール>
「Jenkinsの管理」-「プラグインの管理」から
「Jenkins Persona Plugin」をインストール
<ビルド後の処理の設定>
「Associate Persona」を追加し、
Persona:ミクさん
Location:Right-Side(Not background)
を指定する。
これで、ビルド結果画面で、こんな画像が表示される。

Luaスクリプトの文法チェック
これは特にプラグインは使わずにJenkinsとLuaコンパイラを使う。
「ソースコード管理」の「Subversion」のリポジトリURLを以下のように設定
file:///F:/Visual Studio 2008/SVNrep/trunk/SCENARIO
※Cppcheckと違って、SCENARIOフォルダがチェック対象なのでパスが違う。
「ビルド・トリガ」で「SCMをポーリング」を選択
「スケジュール」はCppcheckの時と同じく「0-59/10 * * * *」
「ビルド」は「Windowsバッチコマンドの実行」を選択
コマンドに以下の内容を記述
F:
cd "F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki\SCENARIO\"
"F:\Visual Studio 2008\Projects\lua5.1\bin\luac5.1.exe" -p *.lua
「ビルド後の処理」では、PersonaとSoundsプラグインの指定を行う
なお、エラー発生時の文法エラーの内容は
ビルドの履歴を選択し、「コンソール出力」を選択すると
F:\Visual Studio 2008\Projects\lua5.1\bin\luac5.1.exe: SearchBase.lua:1: '=' expected near '
といったエラーの内容を確認できる。
※基本的にSVNにはテストしたものしかコミットしないので
文法エラーが残っていることはないのだが
複数の修正をしていてコミット漏れを見つけた時に
勢いで未テストのLuaをコミットしてしまった時に
早期に問題を見つけるための保険みたいなもの
StepCounter Pluginの追加
*.cpp, *.h, *.luaの拡張子のファイルのステップ数を数える。
<事前準備>
https://github.com/jenkinsci/stepcounter-plugin/tree/57da29cfa10a2f0f4cd62c544353044e343391d7
の右側にある「Download.zip」ボタンをクリックして
プラグインファイルをダウンロード。
ダウンロードしたファイルを展開しておく。
<プラグインのインストール>
「Jenkinsの管理」-「プラグインの管理」から「高度な設定」タブを開く
プラグインのアップロードにある「ファイルを選択」ボタンで
展開後フォルダのtargetにあるstepcounter.hpiを選択し、アップロードする。
<ビルド後の処理の設定>
CppcheckのビルドだとLuaのフォルダも含めてSVNのリポジトリを見るので
Cppcheckのビルドに組み込む。
「Step Counter」を選択する(拡張子ごとに設定が必要なので3回やる)
カウント対象のファイルパターンリスト:CPP(2つ目の設定:H、3つ目の設定:Lua)
解析するファイルパターンを指定:*.cpp(2つ目の設定:*.h、3つ目の設定:*.lua)
解析するファイルのエンコーディングを指定:MS932
これでCppcheckのビルドの都度、実行行数合計、コメント行数合計、空行数合計、総計を確認できる。
各拡張子ごとのタブで指定した拡張子のファイル一覧よりソース1本ごとの値も確認できるので便利。
Trac Publisher Pluginの追加
Traclightningからは、Jenkinsに来るリンクがあるのに
JenkinsからTracに戻るリンクがないのが使いづらかったので追加
<プラグインのインストール>
「Jenkinsの管理」-「プラグインの管理」から
「Trac Publisher Plugin」をインストール
<各ビルドのTrac Websiteの設定>
初音ミク冒険記TracのURLを入力する
これでJenkinsの各ビルドの左側に表示されるメニューにTracが増えてクリックすると
Tracへ飛ぶことができる。
最終的にどうなったの?
ということで、これで、いろいろと便利になったと思う。
SVNのコミットをトリガーとして10分以内に
CppheckやLuaの文法チェック、さらにステップ数集計も自動実行し
ステップ数は表にまとめてくれる。
成功と失敗は音でも分かるし、後からでもビルドを確認すると
ミクの絵により、成功失敗が分かる。
TracからJenkinsへ飛んで
ビルドの手動実行してからTracに戻ることもできる。
本当の意味でJenkinsを使いこなすには
テストの自動化やカバレッジ率の取得が必要だが
正直、DXライブラリを使った開発で
テストの自動実行がどこまで出来るものかもわからないので
現時点では、これでも結構良いんじゃないだろうか?
まぁ、C#で作る開発ツール辺りだと、自動実行することがあるかもしれないけどね。