いうジョブが作られていれば成功である。この状態ではジョブは有効になっていないので、ジョブのリンクをクリックして、「ビルド実行」をクリックしてジョブを有効にしつつビルドを実行してみる。用いる実行のための設定ファイルである。ジョブの設定を確認するには、各ジョブの画面から[設定]リンクをクリックすれば良い。使うという設定は、設定画面中段、ビルドの項目にPhingの呼び出しという項目で行われている(画面は「高度な設定」を押した後の表示)。呼び出し]や[シェルの実行]などを選ぶ。プラグインが足されていれば[Phingの実行]が選択することができる。これまでのワークショップの手順をやった結果、$JENKINS_HOME/jobs/ci_workshop_job/workspace/build.xmlがあるはずである。現在、Phingの設定の[ビルドファイル]が空であるが、デフォルトでworkspaceのbuild.xmlという名前のファイルを使うからである。ファイル名などを変えたいときは、この設定をいじる。いうターゲットが選ばれる。jenkinsでターゲットを指定したい場合はここの設定項目で設定する。ターゲットの詳しい説明については省く。Phingのドキュメントを読んでくだしあ。タスクが全て実行される。動かすときだけ上書きたいと言った場合に使う。build.xmlPHPCPDはコードの重複をチェックするためのツールである。具体的には以下の画面の[重複コード:2個の警告]をクリックすると次のようにコードが重複してる箇所がわかる。リンクをクリックするとコードのどの箇所かもJenkinsの画面で見ることができる。以下のとおりになっている。</target>build.xml内の各項目については細かく説明しないが、filesetなどで対象とするファイルを指定したりする。このファイルだけは除外したいとかは、fileset内にexcludeなどを指定して設定する。line="8"/>というように重複してる行数と、重複してるトークン数が出力されるのだが、このlineの数をどういうようなしきい値で警告とするかという設定である。Highは赤、Normalは黄色で表示される。高度な設定の内容はあまり俺も把握してないので省略。build.xmlPHPMDはコード内の使われていない変数を警告したり、複雑すぎるクラスを警告したりする。具体的には以下の画面の[PMD:3個の警告]のリンクをクリックして次のようにルールにあっていない警告を表示できる。僕が一番使うのは「警告」タブでファイル一覧を表示させてさらに各ファイルのエラーの箇所を見るこの場合だと、パラメーターとして渡されているのにメソッド内で使っていないのでエラーになっている。以下のとおりになっている。</target>というのがポイントでどのPHPMDのルールを使うのかを設定している。以下のようになっている。/></ruleset>基本的にはPHPMDで用意してあるルールセットを読み込んでるだけだが、ShortVariableの警告などは出るとうざいので、excludeで指定してある。細かい設定などの説明はしないが、ここでは、TooManyMethodsの警告のメソッド数のしきい値なども行なっている。自分で作成したルールの設定などもここで行う。設定はpmdプラグインが正しくインストールされていればビルド後の処理の[PMD警告の集計]で行う集計するファイルの設定は、formatterのoutputfileと合わせる。高度な設定の内容はあまり俺も把握してないので省略。いわずもがな、自動テストをして、その結果を出力する。具体的には以下の画面の[テスト結果]のリンクをクリックして次のように失敗したテストを表示できる。以下のとおりになっている。項目を設定すればよい。ビルド後の処理の[JUnitテスト結果の集計]で行う。テスト結果XMLの設定は、formatterのoutputfileと合わせる。形式に整形してくれるツールである。Jenkins氏から見せるには、Javadocの出力として処理してしまおう。以下のとおりになっている。項目を設定すればよい。ビルド後の処理の[Javadocの保存]で行う。この結果、PHPDocumentorで出力されたファイルが、各ジョブのリンクの[ドキュメント]でリンクされることになる。urlにjavadocが入る気持ち悪い仕様になるが。エラーの解消方法についてここまで説明した各ツール、プラグインで出てきたエラーを実際に解消して行こう。ちなみに、手を入れるファイルには全てテストが存在している。テストのないコードでPHPCPDの警告やPHPMDの警告がある場合は、先にテストを書いてから手を入れるのが正しいレガシーコードとの戦い方と言えよう。