{"id":24831,"date":"2015-10-12T08:54:26","date_gmt":"2015-10-12T06:54:26","guid":{"rendered":"https:\/\/mamchenkov.net\/wordpress\/?p=24831"},"modified":"2015-10-12T08:54:26","modified_gmt":"2015-10-12T06:54:26","slug":"continuous-integration-servers","status":"publish","type":"post","link":"https:\/\/mamchenkov.net\/wordpress\/2015\/10\/12\/continuous-integration-servers\/","title":{"rendered":"Continuous Integration Servers"},"content":{"rendered":"<!-- google_ad_section_start -->\n<p><a href=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/10\/build-results.png?ssl=1\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" data-attachment-id=\"24832\" data-permalink=\"https:\/\/mamchenkov.net\/wordpress\/2015\/10\/12\/continuous-integration-servers\/build-results\/\" data-orig-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/10\/build-results.png?fit=614%2C378&amp;ssl=1\" data-orig-size=\"614,378\" 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=\"build results\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/10\/build-results.png?fit=614%2C378&amp;ssl=1\" class=\"aligncenter size-medium wp-image-24832\" src=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/10\/build-results-500x308.png?resize=500%2C308&#038;ssl=1\" alt=\"build results\" width=\"500\" height=\"308\" srcset=\"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/10\/build-results.png?resize=500%2C308&amp;ssl=1 500w, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2015\/10\/build-results.png?w=614&amp;ssl=1 614w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/p>\n<p>Here&#8217;s a list of Continuous Integration (CI) servers \/ solutions for those who is still trying to choose:<\/p>\n<ul>\n<li><a href=\"https:\/\/travis-ci.org\/\">Travis CI<\/a><\/li>\n<li><a href=\"https:\/\/circleci.com\/\">CircleCI<\/a><\/li>\n<li><a href=\"https:\/\/jenkins-ci.org\/\">Jenkins CI<\/a><\/li>\n<li><a href=\"https:\/\/www.atlassian.com\/software\/bamboo\">Atlassian Bamboo<\/a><\/li>\n<li><a href=\"https:\/\/www.jetbrains.com\/teamcity\/\">JetBrains TeamCity<\/a><\/li>\n<li><a href=\"https:\/\/www.visualstudio.com\/en-us\/products\/tfs-overview-vs.aspx\">Microsoft Team Foundation Server<\/a><\/li>\n<li><a href=\"https:\/\/www.visualstudio.com\/en-us\/products\/what-is-visual-studio-online-vs.aspx\">Microsoft Visual Studio Online CI<\/a><\/li>\n<li><a href=\"https:\/\/about.gitlab.com\/gitlab-ci\/\">GitLab CI<\/a><\/li>\n<li><a href=\"https:\/\/codeship.com\/\">Codeship<\/a><\/li>\n<li><a href=\"https:\/\/drone.io\/\">Drone.io<\/a><\/li>\n<li><a href=\"https:\/\/buildkite.com\/\">Buildkite<\/a><\/li>\n<\/ul>\n<p>Via <a href=\"https:\/\/github.com\/auchenberg\/volkswagen\">volkswagen<\/a>.<\/p>\n<!-- google_ad_section_end -->\n","protected":false},"excerpt":{"rendered":"<!-- google_ad_section_start -->\n<p>Here&#8217;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.<\/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":"Continuous Integration Servers #CI #QA #testing","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],"tags":[3089,3074,1108,1330],"keyring_services":[],"class_list":["post-24831","post","type-post","status-publish","format-standard","hentry","category-general","category-programming","category-technology","tag-continuous-integration","tag-quality-assurance","tag-testing","tag-web-development"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":36094,"url":"https:\/\/mamchenkov.net\/wordpress\/2019\/02\/25\/how-to-build-a-serverless-ci-cd-pipeline-on-aws\/","url_meta":{"origin":24831,"position":0},"title":"How To Build a Serverless CI\/CD Pipeline On AWS","author":"Leonid Mamchenkov","date":"February 25, 2019","format":false,"excerpt":"\"How To Build a Serverless CI\/CD Pipeline On AWS\" is a nice guide to some of the newer Amazon AWS services, targeted at developers and DevOps. It shows how to tie together the following: Amazon EC2 (server instances)Docker (containers)Amazon ECR (Elastic Container Registry)Amazon S3 (storage)Amazon IAM (Identity and Access Management)Amazon\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\/2019\/02\/aws.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2019\/02\/aws.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":19979,"url":"https:\/\/mamchenkov.net\/wordpress\/2014\/01\/28\/testling-ci-run-your-browser-tests-on-every-push\/","url_meta":{"origin":24831,"position":1},"title":"testling-ci &#8211; run your browser tests on every push","author":"Leonid Mamchenkov","date":"January 28, 2014","format":"link","excerpt":"testling-ci - run your browser tests on every push","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":26327,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/08\/09\/analyzing-2-million-travis-builds\/","url_meta":{"origin":24831,"position":2},"title":"Analyzing 2+ Million Travis Builds","author":"Leonid Mamchenkov","date":"August 9, 2016","format":false,"excerpt":"TravisCI - a continuous\u00a0integration service - shares some of the insights from over 2,000,000 builds they've run, in an blog post called \"What We Learned about Continuous Integration from Analyzing 2+ Million Travis Builds\". \u00a0For me, the most valuable bit is about the reasons for failing builds, which clearly indicates\u2026","rel":"","context":"In &quot;All&quot;","block_context":{"text":"All","link":"https:\/\/mamchenkov.net\/wordpress\/category\/general\/"},"img":{"alt_text":"2016-07-28-analyzing-travis-builds-0","src":"https:\/\/i0.wp.com\/mamchenkov.net\/wordpress\/wp-content\/uploads\/2016\/08\/2016-07-28-analyzing-travis-builds-0-500x289.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":11931,"url":"https:\/\/mamchenkov.net\/wordpress\/2009\/11\/17\/day-in-brief\/","url_meta":{"origin":24831,"position":3},"title":"Day in brief","author":"Leonid Mamchenkov","date":"November 17, 2009","format":false,"excerpt":"Made it to the @phpconference with a somewhat horrible hangover. Waiting for the first session to start. Design patterns that is. # About to waste an hour of my life with @calevans. #ipc # Consequences - shmonsequences. # I think this is probably the best WiFi I ever saw at\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":18318,"url":"https:\/\/mamchenkov.net\/wordpress\/2013\/06\/05\/from-15-hours-to-15-seconds-reducing-a-crushing-build-time\/","url_meta":{"origin":24831,"position":4},"title":"From 15 hours to 15 seconds: reducing a crushing build time","author":"Leonid Mamchenkov","date":"June 5, 2013","format":"link","excerpt":"From 15 hours to 15 seconds: reducing a crushing build time In summary: Bad Practice #1: We favoured integration tests over unit tests. Bad Practice #2: We had many, many features that were relatively unimportant. Bad Practice #3: Our integration tests were actually acceptance tests. Bonus tip:\u00a0run the build entirely\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":26688,"url":"https:\/\/mamchenkov.net\/wordpress\/2016\/09\/16\/bitbucket-pipelines-and-docker-for-php-developers\/","url_meta":{"origin":24831,"position":5},"title":"BitBucket Pipelines and Docker for PHP Developers","author":"Leonid Mamchenkov","date":"September 16, 2016","format":false,"excerpt":"I've been meaning to look into Docker for a long while now. \u00a0But, as always, time is the issue. \u00a0In the last couple of days though I've been integrating BitBucket Pipelines into our workflow. \u00a0BitBucket Pipelines is a continuous integration solution, which runs your project tests in a Docker container.\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":[]}],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/24831","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=24831"}],"version-history":[{"count":0,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/posts\/24831\/revisions"}],"wp:attachment":[{"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/media?parent=24831"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/categories?post=24831"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/tags?post=24831"},{"taxonomy":"keyring_services","embeddable":true,"href":"https:\/\/mamchenkov.net\/wordpress\/wp-json\/wp\/v2\/keyring_services?post=24831"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}