Upload
yandod
View
579
Download
3
Embed Size (px)
Citation preview
2014/6/28@yando
Travis CIで実現するPHPアプリの自動テスト
yando
CandyCane / php
書籍
Chef 実践入門 CakePHP2 実践入門 同姓同名
自分小説家
安藤祐介
刀鍛冶
安藤祐介
note.mu/yando
Yak Shaving
engineyard.co.jp
業務レベルのPaaS
PHP/Ruby/Node/Java
ご入用の際は是非
本日お話すること
なぜTravis CIなのか?
Travis CIの使い方
Travis CIで出来る様々なテスト
なぜTravis CIなのか
テストしてますか
http://fjord.jp/love/1084.html
Jenkins
Jenkinsサーバの
構築・運用はつらい
なぜか
要求は異なる
アプリAの必要なPHP、DB、ソフト
アプリBの必要なPHP、DB、ソフト
アプリCの必要なRuby、DB、ソフト
つらいならやめよう
継続的インテグレーション SaaS
2011年2月に誕生? ベルリン発
Mathias Meyer & Josh Kalderimis
テスト環境がオープンソース
Travis CI
オープン、分散、即時
複数バージョンでの並行テスト
ライブラリ開発者、利用者
Higher Quality Code
Make the world a better place
特長
C C++ Clojure Erlang Go Groovy Haskell Java
JavaScript Objective-C Perl PHP Python Ruby Scala …
超対応
Email IRC Campfire Flowdock
HipChat Sqwiggle Slack Webhook
通知も多彩
オープンソース
無料
プライベート
$129 ~ $489 (並行ジョブ数が異なる)
リポジトリ数は無制限!
料金
Travis CIの使い方
Ubuntu 12.04 LTS Server Edition 64bit
テストごとにまっさらな環境
Chefで構築されている
テスト環境
コードをGitHubに置く
Travis CIからアカウント連携
該当リポジトリのスライダーをON
前提条件
Travis CIにCIの設定を指示
言語、バージョン、事前処理
テストに必要な鍵情報も書ける
文法チェックも可能
.travis.yml
.travis.yml
バージョン
テストは?
賢いデフォルトに合わせると楽
phpunit
composer pyrus pearも使用可能
pecl apt-getもいける
自由に設定
install:
before_install:
script:
ビルドステータス
おどろき
猛烈に簡単
猛烈に便利
Travis CIで出来る
様々なテスト
テストの再実行
ネットワークなどが原因の際
再実行すれば通る
落ち着いてWebのボタンを押す
Selenium Testing
Travis CIにはfirefoxが入っている
xVfbを起動してブラウザを起動
ブラウザを使ったテストを自動化
phpunitから制御
Travis CI VMxVfbfirefox
JavaSelenium
PHP
WebApp
phpunit
暗号化
APIキーなどをそのままコミット?
travis gem でencrypt
.travis.yml に secure: ‘encrypted’
実行時にデコードして解釈
暗号化の例
Engine Yard連携
GitHubへコードをプッシュ
Travis CIがテストを実行
自動でEngine Yardへデプロイ!
iOS / Android
スマホアプリのCIも可能
OSXにXCodeが入ったVM
Android SDKも同様
Simulatorも入っている
それでも自分で作る?
続きはブログで