Travis vs Circle vs Jenkins
IPC 2017
building stuff
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000838/4696338852_bde479b169_o.jpg)
Photo by Michael Himbeault on Flickr
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000857/frustrated.jpg)
Copyright Sybren Stuvel and licensed for reuse under this Creative Commons License.
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000875/BxcvvQhIQAALq7m.jpg)
http://www.l2jserver.com/forum/viewtopic.php?t=31413
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000878/adn5xmm_460s.jpg)
http://www.l2jserver.com/forum/viewtopic.php?t=31413
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000886/kbupg0.jpg)
http://www.l2jserver.com/forum/viewtopic.php?t=31413
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000888/16dbde67581db62f53479f556c9ee19fd8e94eeb8108fd8452f2908af502b4e9.jpg)
http://www.l2jserver.com/forum/viewtopic.php?t=31413
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000889/bc1b66127828082ff9eca00f2736364e6f23c873b8d1c96687c117c700714b95.jpg)
http://www.l2jserver.com/forum/viewtopic.php?t=31413
BE BETTER
Automation
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3000983/maxresdefault.jpg)
CONTINUOUS INTEGRATION
CONTINUOUS DELIVERY
CONTINUOUS DEPLOYMENT
Any questions ?
Miro Svrtan
trainer / senior developer / contractor
ZgPHP organizer
@msvrtan
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3772040/Twitter_bird_logo_2012.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996923/2988888.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996929/vertical-00bdfebf4960c363bb49369a9b7687f4c2232859b0f9d095b6997573b4e29c66.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996932/gitlab.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996937/Shippable-Logo-4.16.15-300x240.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996946/Bamboo-URL.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996952/codeship-logo-horizontal.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996953/continuous-php-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996966/logo_TeamCity.png)
Travis CI
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
Jenkins CI
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
Circle CI
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Which one TO pick?
We don't wanna do ops
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
WE NEED TO KEEP IT HOME
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
Jenkins
but...
enterprise on-premise
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
jump on quickly
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Setup Circle ci
Add circle.yml
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007032/Screen_Shot_2016-09-15_at_10.03.35.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007149/Screen_Shot_2016-09-15_at_10.44.35.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007147/Screen_Shot_2016-09-15_at_10.44.48.png)
Circle CI
pricing
- private projects
- 1 container free
- $50 per container/month
- public projects
- 4 containers free
- $50 per container/month
MULTI VERSION TESTING
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
We have our own orm
Setup TRAVIS ci
.travis.yml
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007060/Screen_Shot_2016-09-15_at_10.12.34.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007095/Screen_Shot_2016-09-15_at_10.13.34.png)
JOB page
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007066/Screen_Shot_2016-09-15_at_10.13.45.png)
Travis ci
pricing
- private projects
- 100 builds free
- $69 for 1 concurent job
- $129 for 2 concurent jobs
- ...
- public projects
- 4 concurent jobs free
Travis ci
public vs private repos
- separate web sites
- waiting queue time on private < public
PARALLELIZE TESTS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
CUSTOMIZABLE JOBS
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
PIPELINE
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Docker
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
source code management support
Works with github?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Works with BITBUCKET?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Works with GITLAB?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
Works with basic git repo?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
Works with *anything* you can throw at it?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
Quick feedback on critical + long tests
Quick feedback on critical+ long tests
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
TIME BASED (CRON)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
Any questions on this part?
or 'Still no questions?'
Clean builds vs performance
Clean build
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Dirty builds
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
Just continous delivery
- 1 click style
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Just continous delivery
- slack style
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007261/imageedit_1_3265263009.png)
Just continous delivery
- slack style
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Continuos deployment
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
Debug build
Debug build
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996643/logo.png)
- it's your server :)
Debug build
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996634/TravisCI-Mascot-1-bc6a3179f3e8e1ab1456634bd55a448a.png)
- debug in beta (add it to .travis.yml where you want a break point)
- add AWS S3 bucket for logs/artifacts
Debug build
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/2996637/circle-ci-service-128.png)
- enable ssh
- access to logs/artifacts directly
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007307/imageedit_3_8269198350.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/75324/images/3007309/Screen_Shot_2016-09-15_at_11.20.18.png)
saas warnings
saas - the good parts
self hosted - good parts
Thank you
Miro Svrtan
@msvrtan
questions?
Jenkins vs Circle vs Travis - IPC 2017
By Miro Svrtan
Jenkins vs Circle vs Travis - IPC 2017
International PHP conference 2017 in Munich, Germany October 26th 2017
- 1,894