In this slideshow I asked myself:
Why should I prefer an on premise Jenkins vs SaaS like Travis?
How can I set up Jenkins for multiple package versions (PHP 5.5, PHP5.4...) with an acceptable grade of maintainability?
2. Why I should prefer on-premise
Jenkins
vs
SaaS like Travis or CircleCI ?
3. Let’s talk about $$$
TravisCI startup plan costs 130$/monthly
for 2 concurrent builds and several limits
c4.xlarge( 4 core, 8GB RAM,1Gb/s) ~ 130$/monthly
but I have to spend some time to configure
Jenkins…
4. Let’s talk about $$$
why should I keep my CI server always ON
even outside work hours??!!
here it comes on demand…
C4xlarge for 180h/720h ~ 32$
5. Let’s talk about $$$
but my sysadmin
has to switch on/off every day??!!
lot of waste and boring things!
6. Let’s talk about $$$
AWS CLI + CRON JOBS!!!
•20 9 * * 1-5 root/usr/local/bin/jenkins_on.sh
•50 19 * * 1-5 root /usr/local/bin/jenkins_off.sh
code will be available on https://www.ideato.it/blog
7. Let’s talk about heterogeneity
we have heterogeneous projects…
•PHP versions(5.4, 5.5,5.6)
•Elasticsearch(0.9->1.4)
•NodeJS
•….
with TravisCI I can easily set several PHP versions,
how can I run tests for these on JenkinsCI ?
13. a possible workflow…
All the additional software(ES, mongoDB..)
required should be defined in a Dockerfile,
committed inside the project repository
and built on top of CI image
Jenkins job will launch “composer install”,
build the image
and run tests inside the container
14. Our Dockerfile
for i.e we need Elasticsearch 1.4.2 & Node.js
run_tests will launch services inside the container
20. Resuming….
1 day for Jenkins setup
1/2 day for AWS cli cronjob
~ 550€
(one time cost)
+
AWS c4.xlarge 32€ x 12=384€ = 934€
vs
TravisCI Startup Plan 114€ x 12 = 1368€