CakePHP2系でJenkinsを使って自動テスト

いつも自分のブログで検索してもJenkinsインストールした記録が残ってなくて、なんか変だなと思ったら書いてなかった。
CakePHP2系でtestsuiteを自動で走らせるっていうやつです。Jenkinsインストールからやります。

環境

  • LinuxMint12 64bit

Jenkinsインストール

Ubuntu向けのインストール方法やればインストールされます。jenkinsユーザー作って8080ポートで起動までしてくれる

以下コマンド

$ 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 aptitude update
$ sudo aptitude install jenkins

Jenkinsの設定

今回はVCSがGitなのですが、標準では対応していません。Jenkinsの設定からGitプラグインいれます。

  • プラグインの管理 > 利用可能 > Git Plugin


Jenkinsユーザーでcloneできるようにリポジトリの設定に合わせて準備はしといてください(公開鍵とかそのへん)

ポーリングのところはcronの形式で間隔していできる。

ビルド手順

database.phpとかは手動でコピーして設定してというのをjenkinsとは関係ないところで行った。
後は、cake schema createしてtestsuite AllTestsを叩くだけなんだけど
cake schema createは対話式でdropしてもいいか、createしてもいいかという質問がくるので参った。


パイプで渡せば標準入力的な感じでうまくいくことがわかって下のように書いて動いた。

小さすぎてみえない

echo "y\ny" | lib/Cake/Console/cake schema create
lib/Cake/Console/cake testsuite AllTests