基本的には↓の記事の内容を進めていけばOKなのですが、つまずいたところがあったのでメモ。
CakePHP2.0+Jenkinsで継続的インテグレーションを行う方法
OSはCentOS6.0です。
1.Redmine + Git + Jenkinsをインストール
ALMiniumを使ってインストール。
2.Jenkinsの設定
PHP関連パッケージの導入
PECLのインストール
# yum groupinstall "Development Tools" # yum install php-devel # yum install php-pear
PHP関連パッケージのインストール
pecl install xdebug pear channel-discover components.ez.no pear channel-discover pear.phpunit.de pear channel-discover pear.phpmd.org pear channel-discover pear.symfony-project.com pear channel-discover pear.symfony.com pear channel-discover pecl.php.net pear channel-discover pear.pdepend.org pear channel-discover pear.netpirates.net pear install --alldeps PhpDocumentor pear install --alldeps phpunit/phpcpd pear install --alldeps phpmd/PHP_PMD
PHPUnitのインストール
# yum install php-xml # pear upgrade PEAR # pear config-set auto_discover 1 # pear install pear.phpunit.de/PHPUnit
以下を/etc/php.iniの最後に追加してhttpd再起動
zend_extension="/usr/lib64/php/modules/xdebug.so" extension=imagick.so
CakePHP2系からPDOを使うようになったのでインストール。さらにPDO MySQL 拡張モジュールもインストール。
# yum install php-pdo # pecl install pdo_mysql
以下を/etc/php.iniの最後に追加してhttpd再起動
extension=pdo.so extension=pdo_mysql.so
Jenkinsプラグインの導入
冒頭で紹介したリンク先の記事に書いてある通り
3.プロジェクトの設定
Jenkinsのプロジェクトの設定画面で、
ソースコード管理システム
Gitを選択。「Repository URL」欄にリポジトリパスを入力。パスはRedmineの各プロジェクトの設定画面にある「リポジトリ」タブで確認できます。「/var/opt/alminium/git/プロジェクト識別子」
ビルド・トリガ
ローカルからGitにプッシュする度にビルドするなら「SCMをポーリング」にチェック。
「スケジュール」欄に「* * * * *」と入力。
ビルド – シェルの実行
cakeとtmpの権限を変更する必要がありました。
cd ${WORKSPACE}/apps/admin && chmod 744 Console/cake && chmod 777 ./tmp/* && Console/cake test app AllTests
以上です。
2014.04.18 追記
PHP Warning: Module ‘PDO’ already loaded in Unknown on line 0
というワーニングが出力されていたのですが、/etc/php.d/pdo.ini の extension=pdo.so をコメントアウトしてやることで出なくなりました。