{"id":26327,"date":"2016-08-09T10:32:08","date_gmt":"2016-08-09T08:32:08","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=26327"},"modified":"2016-08-09T10:32:08","modified_gmt":"2016-08-09T08:32:08","slug":"analyzing-2-million-travis-builds","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/09\/analyzing-2-million-travis-builds\/","title":{"rendered":"Analyzing 2+ Million Travis Builds"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/travis-ci.org\/\">TravisCI<\/a> &#8211; a continuous\u00a0integration service &#8211; shares some of the insights from over 2,000,000 builds they&#8217;ve run, in an blog post called &#8220;<a href=\"https:\/\/blog.travis-ci.com\/2016-07-28-what-we-learned-from-analyzing-2-million-travis-builds\/\">What We Learned about Continuous Integration from Analyzing 2+ Million Travis Builds<\/a>&#8220;. \u00a0For me, the most valuable bit is about the reasons for failing builds, which clearly indicates the need for and the importance of unit, integration, and UI tests:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"26328\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/09\/analyzing-2-million-travis-builds\/2016-07-28-analyzing-travis-builds-0\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0.png?fit=970%2C561&amp;ssl=1\" data-orig-size=\"970,561\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"2016-07-28-analyzing-travis-builds-0\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0.png?fit=660%2C382&amp;ssl=1\" class=\"aligncenter size-medium wp-image-26328\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0-500x289.png?resize=500%2C289&#038;ssl=1\" alt=\"2016-07-28-analyzing-travis-builds-0\" width=\"500\" height=\"289\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0.png?resize=500%2C289&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0.png?resize=768%2C444&amp;ssl=1 768w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0.png?w=970&amp;ssl=1 970w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Around 20% of all builds fail. \u00a0There is a variation based on the language &#8211; for some programming languages, testing is part of the process and culture &#8211; for others it&#8217;s an acquired tool. \u00a0Once you do implement testing, most of your builds will run. \u00a0You&#8217;ll cancel very few. \u00a0But about 20% will fail due to failed unit tests, configurations, or environment setups. \u00a0Catching these 20% before it hits production is super important.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>TravisCI &#8211; a continuous\u00a0integration service &#8211; shares some of the insights from over 2,000,000 builds they&#8217;ve run, in an blog post called &#8220;What We Learned about Continuous Integration from Analyzing 2+ Million Travis Builds&#8220;. \u00a0For me, the most valuable bit is about the reasons for failing builds, which clearly indicates the need for and the &hellip; <a href=\"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/09\/analyzing-2-million-travis-builds\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Analyzing 2+ Million Travis Builds<\/span><\/a><\/p>\n<!-- google_ad_section_end -->\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"Analyzing 2+ Million Travis Builds #WebDev #stats #testing #TravisCI","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_links_to":"","_links_to_target":""},"categories":[1,18,62,1334],"tags":[1041,1108,3437,1330],"keyring_services":[],"class_list":["post-26327","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","category-web-work","tag-statistics","tag-testing","tag-travisci","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27886,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/31\/cakephp-with-nightwatchjs-on-travis-ci\/","url_meta":{"origin":26327,"position":0},"title":"CakePHP with NightwatchJS on Travis CI","author":"Leonid Mamchenkov","date":"August 31, 2017","format":false,"excerpt":"My colleague Andrey Vystavkin has been setting up a testing environment for our CakePHP projects recently. \u00a0We had one before, of course, using PHPUnit. \u00a0But this time we wanted to add Google Chrome headless browser with some form of JavaScript test suite, so that we could cover functional tests and\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":24831,"url":"https:\/\/mamchenkov.net\/wordpress\/2015\/10\/12\/continuous-integration-servers\/","url_meta":{"origin":26327,"position":1},"title":"Continuous Integration Servers","author":"Leonid Mamchenkov","date":"October 12, 2015","format":false,"excerpt":"Here's a list of Continuous Integration (CI) servers \/ solutions for those who is still trying to choose: Travis CI CircleCI Jenkins CI Atlassian Bamboo JetBrains TeamCity Microsoft Team Foundation Server Microsoft Visual Studio Online CI GitLab CI Codeship Drone.io Buildkite Via volkswagen.","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"build results","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/10\/build-results-500x308.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27855,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/17\/scheduled-pipelines-now-available-in-bitbucket-pipelines\/","url_meta":{"origin":26327,"position":2},"title":"Scheduled pipelines now available in Bitbucket Pipelines","author":"Leonid Mamchenkov","date":"August 17, 2017","format":false,"excerpt":"BitBucket blog announces the support for scheduled Bitbucket Pipelines. \u00a0This is super cool and has been on the wishlist for a while now. \u00a0Here are a few examples of how this feature is useful: Nightly builds that take longer to run Daily or weekly deployments to a test environment Data\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/08\/scheduled-pipelines-500x480.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":16647,"url":"https:\/\/mamchenkov.net\/wordpress\/2012\/08\/31\/on-builds-and-releases\/","url_meta":{"origin":26327,"position":3},"title":"On builds and releases","author":"Leonid Mamchenkov","date":"August 31, 2012","format":false,"excerpt":"Once in a while I find myself in a conversation on builds and releases. \u00a0It's one of those where before the conversation everyone seems to be on the same page, but immediately after the conversation starts, there's a massive fight and argument as to how the world works today and\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2012\/08\/GitHub-builds-and-releases-500x231.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":27037,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/12\/02\/migrating-to-php-7\/","url_meta":{"origin":26327,"position":4},"title":"Migrating to PHP 7","author":"Leonid Mamchenkov","date":"December 2, 2016","format":false,"excerpt":"PHP 7.0.0 has been released for a year now. \u00a0I wasn't in a rush to migrate to it, but with all the cool features and performance optimization, it's definitely something I wanted to look into rather sooner than later. It turns out that I've done my first PHP 7 migration\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":27889,"url":"https:\/\/mamchenkov.net\/wordpress\/2017\/08\/31\/the-coolest-tech-cv-ever\/","url_meta":{"origin":26327,"position":5},"title":"The coolest tech CV ever","author":"Leonid Mamchenkov","date":"August 31, 2017","format":false,"excerpt":"This TravisCI blog post welcomes AJ to the team. \u00a0In it, there is a bit that caught my attention (except, of course, the one about bra burning): If you\u2019re so inclined, you can follow her on Twitter or run curl cv.soulshake.net. Wait a second ... A what? curl for the\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2017\/08\/AJ-CV-500x265.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/26327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/comments?post=26327"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/26327\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=26327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=26327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=26327"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=26327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}