Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Travis-CI - Continuos integration in the cloud ...
Search
Federico Lozada Mosto
June 17, 2014
Programming
97
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Travis-CI - Continuos integration in the cloud for PHP
Federico Lozada Mosto
June 17, 2014
More Decks by Federico Lozada Mosto
See All by Federico Lozada Mosto
Composer
mostofreddy
0
130
PHP 5.3 to 5.6
mostofreddy
2
100
Implementando una Arquitectura de Microservicios
mostofreddy
0
230
Introduction of Unit Testing
mostofreddy
1
120
PHP 5.4 - Features
mostofreddy
0
92
Other Decks in Programming
See All in Programming
Jindong: Introducing Declarative Haptics in Compose Multiplatform
l2hyunwoo
0
140
Deep dive into the select statement (GopherCon UK)
jespino
0
170
Swift愛好会と私(ウホーイ) / Swift Fan Club and Uhooi
uhooi
0
120
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
460
信頼性の目標を誰も求めてない
shubox
0
470
初心者DevRelとして参加者だった私が、DevRel Talks!#2に登壇するまでにしてきたこと
sokohirai
0
320
Claude CodeとAgentCore Gatewayを繋ぐ際の認証認可 / Authentication and authorization when connecting Claude Code with AgentCore Gateway
har1101
2
420
思考垂れ流し開発 ~音声入力 × AIエージェント × 開発ハーネスによる試行錯誤~
npostring
0
710
書籍「プロフェッショナルAI駆動開発」紹介スライド
juntaromatsumoto
0
900
typoなんかねぇよ
raspython3
0
650
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
120
AIエージェント時代のコードレビューを設計する
nogu66
5
2k
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.4k
So, you think you're a good person
axbom
PRO
2
2.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Done Done
chrislema
186
16k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
3k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
BBQ
matthewcrist
89
10k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
290
The Pragmatic Product Professional
lauravandoore
37
7.4k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
310
Transcript
Travis-CI Continuous integration in the cloud for PHP
Federico Lozada Mosto @mostofreddy @federicolozadamosto
Who makes tests? Who makes builds?
Who uses CI server?
Who uses multiple environments?
Hi, I’m Travis CI, a hosted continuous integration service for
open-source and private projects.
What?
Continous integration Open source Distributed
Android C/C++ Clojure Erlang Go Groovy Haskell Java Javascript NodeJS
Objective-C PERL PHP Phyton Ruby Scala
Services: MySQL PostgreSQL MongoDB CouchDB Redis Riak RabbitMQ Memcached Cassandra
Neo4j Elasticsearch Krestel SQLite3 ZeroMQ
Notifications: Email IRC Campfire Flowdock HipChat Sqwiggle Slack Webhook
Deploy: Appfog Cloud66 Heroku Modulus Nodejitsu OpenShift cloudControl CloudFoundry RubyGems
AWS OpsWorks PyPI Divshot.io Rackspace Cloud Files Npm S3 Ninefold Engine Yard Github Releases Custom deployment
How?
login How does it work?
service hook How does it work?
gi add .travis.yml git commit .travis.yml git push …. How
does it work?
gi add . git commit . git push …. service
hook run tests / builds fresh environments How does it work?
.travis.yml
.travis.yml
.travis.yml
Build lifecycle 1. before_install 2. install 3. before_script 4. script
5. after_script 6. after_success or after_failure
Build status
Why?
The end goal is...
with less effort Higher-quality code and...
#HAPPYDAY
Extras
xdebug xml xmlreader Xmlrpc xmlwriter xsl zip zlib [Zend Modules]
Xdebug bcmath bz2 Core ctype curl date dom ereg exif fileinfo filter ftp gd gettext hash iconv intl json libxml mbstring mcrypt mysql mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_pgsql pdo_sqlite pgsql Phar posix readline Reflection session shmop SimpleXML soap sockets SPL sqlite3 standard sysvsem sysvshm tidy tokenizer VM - PHP
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
Apc Memcache Memcached Mongo Amqp Zmq Xdebug Redis PHP extensions
before_script - echo "extension = <extension>.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
PHP extensions before_script - pear install <extension> - echo "extension
= <extension>.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini - php -m
PHP extensions
http://yaml.travis-ci.org/ Travis lint
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
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
How to skip a build [ci skip]
None
Federico Lozada Mosto @mostofreddy @federicolozadamosto Thanks!