{"id":38995,"date":"2014-01-24T01:24:30","date_gmt":"2014-01-23T22:24:30","guid":{"rendered":"https:\/\/www.altoros.com\/blog\/?p=38995"},"modified":"2021-03-12T04:17:59","modified_gmt":"2021-03-12T01:17:59","slug":"continuous-integration-with-jenkins-and-travis-ci","status":"publish","type":"post","link":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/","title":{"rendered":"Continuous Integration with Jenkins and Travis CI"},"content":{"rendered":"<p><center><small>Featured image: the continuous delivery process (<a href=\"https:\/\/commons.wikimedia.org\/wiki\/File:Continuous_Delivery_process_diagram.svg\" rel=\"noopener noreferrer\" target=\"_blank\">Credit<\/a>)<\/small><\/center><br \/>\n&nbsp;<\/p>\n<p>According to <a href=\"https:\/\/en.wikipedia.org\/wiki\/Martin_Fowler\" target=\"_blank\" rel=\"noopener noreferrer\">Martin Fowler<\/a>, &#8220;Continuous Integration is a software development practice where members of a team integrate their work <strong>frequently<\/strong>, usually each person integrates at least daily&mdash;leading to <strong>multiple<\/strong> integrations per day. Each integration is verified by an <strong>automated<\/strong> build (including test) to detect integration errors as quickly as possible.&#8221; (<a href=\"https:\/\/martinfowler.com\/articles\/continuousIntegration.html\" target=\"_blank\" rel=\"noopener noreferrer\">c<\/a>)<\/p>\n<p>Inspired by these ideas, our team organized a meetup dedicated to applying continuous integration, continuous delivery, and other related practices. Below are the slides and the video from the sessions providing a high-level overview of Jenkins and Travis CI.<\/p>\n<p>&nbsp;<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_79_2 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#Jenkins\" >Jenkins<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#Travis_CI\" >Travis CI<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#Related_reading\" >Related reading:<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"Jenkins\"><\/span>Jenkins<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"https:\/\/www.jenkins.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Jenkins CI<\/a>&nbsp;is an open source continuous integration server written in Java, which can be utilized for private clouds. In particular, it can be integrated with Cloud Foundry, Stackato, or other&nbsp;private PaaS systems. (Check out <a href=\"http:\/\/blog.cloudfoundry.com\/2013\/02\/28\/continuous-integration-to-cloud-foundry-com-using-jenkins-in-the-cloud\/\" target=\"_blank\" rel=\"noopener noreferrer\">this<\/a> and <a href=\"https:\/\/www.slideshare.net\/activestate\/continuous-delivery-with-jenkins-and-stackato\" target=\"_blank\" rel=\"noopener noreferrer\">this<\/a> link for details).<\/p>\n<p>The slides below will give you a basic overview of what Jenkins is and briefly mention its workflows, alternatives, and tweaks.<\/p>\n<p style=\"text-align: center;\"><iframe loading=\"lazy\" style=\"border: 1px solid #CCC; border-width: 1px 1px 0; margin-bottom: 5px; max-width: 100%;\" src=\"https:\/\/www.slideshare.net\/slideshow\/embed_code\/22048613\" height=\"356\" width=\"427\" allowfullscreen=\"\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Travis_CI\"><\/span>Travis CI<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><a href=\"http:\/\/travis-ci.com\" target=\"_blank\" rel=\"noopener noreferrer\">Travis CI<\/a> is a hosted Ruby service for continuous integration. It enables deployments to Heroku, Engine Yard, Cloud Foundry, OpenShift, and other PaaS platforms.&nbsp;Watch this 40-min overview by Piotr Sarnacki from the <a href=\"https:\/\/www.altoros.com\/blog\/the-ruby-community-is-blooming-more-than-100-ruby-experts-attended-the-local-ruby-on-rails-user-group\/\" target=\"_blank\" rel=\"noopener noreferrer\">meetup<\/a> we organized last year.<\/p>\n<p><center><iframe loading=\"lazy\" src=\"\/\/www.youtube.com\/embed\/RitU7AWb1JA\" height=\"315\" width=\"560\" allowfullscreen=\"\" frameborder=\"0\"><\/iframe><\/center><\/p>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Related_reading\"><\/span>Related reading:<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ul>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/continuous-integration-and-continuous-delivery-in-ibm-bluemix\/\">Continuous Integration and Continuous Delivery in IBM Bluemix<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/how-to-install-jenkins-ci-on-cloud-foundry-for-continuous-delivery\/\">How to Install Jenkins CI on Cloud Foundry for Continuous Delivery<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/8-pro-tips-for-using-concourse-ci-with-cloud-foundry\/\">8 Pro Tips for Using Concourse CI with Cloud Foundry<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Featured image: the continuous delivery process (Credit)<br \/>\n&nbsp;<\/p>\n<p>According to Martin Fowler, &#8220;Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily&mdash;leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect [&#8230;]<\/p>\n","protected":false},"author":5,"featured_media":23339,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[7],"tags":[873,206],"class_list":["post-38995","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news-and-opinion","tag-cloud-native","tag-oss-cloud-foundry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.6 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Continuous Integration with Jenkins and Travis CI | Altoros<\/title>\n<meta name=\"description\" content=\"These two sessions highlight how Jenkins and Travis CI can be used by DevOps engineers for CI\/CD.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Continuous Integration with Jenkins and Travis CI | Altoros\" \/>\n<meta property=\"og:description\" content=\"Featured image: the continuous delivery process (Credit) &nbsp; According to Martin Fowler, &#8220;Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily&mdash;leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect [...]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/\" \/>\n<meta property=\"og:site_name\" content=\"Altoros\" \/>\n<meta property=\"article:published_time\" content=\"2014-01-23T22:24:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-03-12T01:17:59+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png\" \/>\n\t<meta property=\"og:image:width\" content=\"731\" \/>\n\t<meta property=\"og:image:height\" content=\"524\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Alex Khizhniak\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alex Khizhniak\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/\",\"name\":\"Continuous Integration with Jenkins and Travis CI | Altoros\",\"isPartOf\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png\",\"datePublished\":\"2014-01-23T22:24:30+00:00\",\"dateModified\":\"2021-03-12T01:17:59+00:00\",\"author\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3d914db6ad1b2908c32c0dc5dcabc420\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#primaryimage\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png\",\"width\":731,\"height\":524},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.altoros.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Continuous Integration with Jenkins and Travis CI\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#website\",\"url\":\"https:\/\/www.altoros.com\/blog\/\",\"name\":\"Altoros\",\"description\":\"Insight\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.altoros.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3d914db6ad1b2908c32c0dc5dcabc420\",\"name\":\"Alex Khizhniak\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/06\/druzya-edit1-150x150.jpg\",\"contentUrl\":\"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/06\/druzya-edit1-150x150.jpg\",\"caption\":\"Alex Khizhniak\"},\"description\":\"Alex Khizhniak is Director of Technical Content Strategy at Altoros and a cofounder of a local Java User Group. Managing distributed teams since 2004, he has gained experience as a journalist, an editor-in-chief, a technical writer, a technology evangelist, a project manager, and a product owner. Alex is obsessed with AI\/ML, data science, data integration, ETL\/DWH, data quality, databases (SQL\/NoSQL), big data, IoT, and BI. The articles and industry reports he created or helped to publish reached out to 3,000,000+ tech-savvy readers. Some of the pieces were covered on TechRepublic, ebizQ, NetworkWorld, CIO.com, etc. Find him on Twitter at @alxkh.\",\"sameAs\":[\"https:\/\/x.com\/https:\/\/twitter.com\/alxkh\"],\"url\":\"https:\/\/www.altoros.com\/blog\/author\/alex\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Continuous Integration with Jenkins and Travis CI | Altoros","description":"These two sessions highlight how Jenkins and Travis CI can be used by DevOps engineers for CI\/CD.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/","og_locale":"en_US","og_type":"article","og_title":"Continuous Integration with Jenkins and Travis CI | Altoros","og_description":"Featured image: the continuous delivery process (Credit) &nbsp; According to Martin Fowler, &#8220;Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily&mdash;leading to multiple integrations per day. Each integration is verified by an automated build (including test) to detect [...]","og_url":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/","og_site_name":"Altoros","article_published_time":"2014-01-23T22:24:30+00:00","article_modified_time":"2021-03-12T01:17:59+00:00","og_image":[{"width":731,"height":524,"url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png","type":"image\/png"}],"author":"Alex Khizhniak","twitter_misc":{"Written by":"Alex Khizhniak","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/","url":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/","name":"Continuous Integration with Jenkins and Travis CI | Altoros","isPartOf":{"@id":"https:\/\/www.altoros.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#primaryimage"},"image":{"@id":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#primaryimage"},"thumbnailUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png","datePublished":"2014-01-23T22:24:30+00:00","dateModified":"2021-03-12T01:17:59+00:00","author":{"@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3d914db6ad1b2908c32c0dc5dcabc420"},"breadcrumb":{"@id":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#primaryimage","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/04\/CI-CD-Pipeline.png","width":731,"height":524},{"@type":"BreadcrumbList","@id":"https:\/\/www.altoros.com\/blog\/continuous-integration-with-jenkins-and-travis-ci\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.altoros.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Continuous Integration with Jenkins and Travis CI"}]},{"@type":"WebSite","@id":"https:\/\/www.altoros.com\/blog\/#website","url":"https:\/\/www.altoros.com\/blog\/","name":"Altoros","description":"Insight","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.altoros.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/3d914db6ad1b2908c32c0dc5dcabc420","name":"Alex Khizhniak","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.altoros.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/06\/druzya-edit1-150x150.jpg","contentUrl":"https:\/\/www.altoros.com\/blog\/wp-content\/uploads\/2017\/06\/druzya-edit1-150x150.jpg","caption":"Alex Khizhniak"},"description":"Alex Khizhniak is Director of Technical Content Strategy at Altoros and a cofounder of a local Java User Group. Managing distributed teams since 2004, he has gained experience as a journalist, an editor-in-chief, a technical writer, a technology evangelist, a project manager, and a product owner. Alex is obsessed with AI\/ML, data science, data integration, ETL\/DWH, data quality, databases (SQL\/NoSQL), big data, IoT, and BI. The articles and industry reports he created or helped to publish reached out to 3,000,000+ tech-savvy readers. Some of the pieces were covered on TechRepublic, ebizQ, NetworkWorld, CIO.com, etc. Find him on Twitter at @alxkh.","sameAs":["https:\/\/x.com\/https:\/\/twitter.com\/alxkh"],"url":"https:\/\/www.altoros.com\/blog\/author\/alex\/"}]}},"_links":{"self":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/38995","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/comments?post=38995"}],"version-history":[{"count":4,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/38995\/revisions"}],"predecessor-version":[{"id":60506,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/posts\/38995\/revisions\/60506"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media\/23339"}],"wp:attachment":[{"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/media?parent=38995"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/categories?post=38995"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoros.com\/blog\/wp-json\/wp\/v2\/tags?post=38995"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}