Travis-CI - Continuos integration in the cloud for PHP
-
Upload
mostofreddy -
Category
Technology
-
view
524 -
download
8
Transcript of Travis-CI - Continuos integration in the cloud for PHP
![Page 1: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/1.jpg)
Travis-CIContinuous integration in the cloud for PHP
![Page 2: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/2.jpg)
Federico Lozada Mosto
@mostofreddy
@federicolozadamosto
![Page 3: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/3.jpg)
Who makes tests?
Who makes builds?
![Page 4: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/4.jpg)
Who uses CI server?
![Page 5: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/5.jpg)
Who uses multiple environments?
![Page 6: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/6.jpg)
Hi, I’m Travis CI, a hosted continuous integration service
for open-source and private projects.
![Page 7: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/7.jpg)
What?
![Page 8: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/8.jpg)
Continous integration
Open source
Distributed
![Page 9: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/9.jpg)
Android C/C++ Clojure Erlang Go Groovy
Haskell Java Javascript NodeJS Objective-C
PERL PHP Phyton Ruby Scala
![Page 10: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/10.jpg)
Services:
MySQL PostgreSQL MongoDB CouchDB
Redis Riak RabbitMQ Memcached
Cassandra Neo4j Elasticsearch
Krestel SQLite3 ZeroMQ
![Page 11: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/11.jpg)
Notifications:
Email IRC Campfire Flowdock
HipChat Sqwiggle Slack Webhook
![Page 12: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/12.jpg)
Deploy: Appfog Cloud66 Heroku Modulus Nodejitsu
OpenShift cloudControl CloudFoundryRubyGems AWS OpsWorks PyPI
Divshot.io Rackspace Cloud FilesNpm S3 Ninefold Engine Yard
Github Releases Custom deployment
![Page 13: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/13.jpg)
How?
![Page 14: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/14.jpg)
login
How does it work?
![Page 15: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/15.jpg)
service hook
How does it work?
![Page 16: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/16.jpg)
gi add .travis.ymlgit commit .travis.yml
git push ….
How does it work?
![Page 17: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/17.jpg)
gi add .git commit .
git push ….
service hook
run tests / builds
fresh environments
How does it work?
![Page 18: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/18.jpg)
.travis.yml
![Page 19: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/19.jpg)
.travis.yml
![Page 20: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/20.jpg)
.travis.yml
![Page 21: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/21.jpg)
Build lifecycle
1. before_install
2. install
3. before_script
4. script
5. after_script
6. after_success or after_failure
![Page 22: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/22.jpg)
Build status
![Page 23: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/23.jpg)
Why?
![Page 24: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/24.jpg)
The end goal is...
![Page 25: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/25.jpg)
with less effort
Higher-quality code
and...
![Page 26: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/26.jpg)
#HAPPYDAY
![Page 27: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/27.jpg)
Extras
![Page 28: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/28.jpg)
xdebugxmlxmlreaderXmlrpcxmlwriterxslzipzlib
[Zend Modules]Xdebug
bcmathbz2Corectypecurldatedomeregexiffileinfofilterftpgdgettexthashiconv
intljsonlibxmlmbstringmcryptmysqlmysqlimysqlndopensslpcntlpcrePDOpdo_mysqlpdo_pgsqlpdo_sqlitepgsql
PharposixreadlineReflectionsessionshmopSimpleXMLsoapsocketsSPLsqlite3standardsysvsemsysvshmtidytokenizer
VM - PHP
![Page 29: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/29.jpg)
email recipients: - [email protected] on_success: [always|never|change] # default: change on_failure: [always|never|change] # default: always
irc: channels: - "chat.freenode.net#my-channel" on_success: [always|never|change] # default: always on_failure: [always|never|change] # default: always
notifications
![Page 30: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/30.jpg)
Apc
Memcache
Memcached
Mongo
Amqp
Zmq
Xdebug
Redis
PHP extensions
before_script - echo "extension = <extension>.so" >>
~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
![Page 31: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/31.jpg)
PHP extensions
before_script - pear install <extension> - echo "extension = <extension>.so" >>
~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - php -m
![Page 32: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/32.jpg)
PHP extensions
![Page 33: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/33.jpg)
http://yaml.travis-ci.org/
Travis lint
![Page 34: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/34.jpg)
apt-get install !!!
before_script: - curl http://repo.varnish-cache.org/debian/GPG-key.txt | \
sudo apt-key add - - echo "deb http://repo.varnish-cache.org/ubuntu/ precise varnish-3.0" | \
sudo tee -a /etc/apt/sources.list - sudo apt-get update -qq - sudo apt-get install varnish
![Page 35: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/35.jpg)
services
services: - mongodb - couchdb - memcached
env: - DB=mysql
before_script: - mongo mydb_test --eval 'db.addUser("travis", "test");' - if [[ "$DB" == "mysql" ]]; then mysql -e "create database IF NOT EXISTS hello_world_test;" -uroot; fi
![Page 36: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/36.jpg)
How to skip a build
[ci skip]
![Page 37: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/37.jpg)
![Page 38: Travis-CI - Continuos integration in the cloud for PHP](https://reader031.fdocuments.us/reader031/viewer/2022020207/554bd7a1b4c905706a8b521c/html5/thumbnails/38.jpg)
Federico Lozada Mosto
@mostofreddy
@federicolozadamosto
Thanks!