{"id":12041,"date":"2020-11-09T16:48:00","date_gmt":"2020-11-09T15:48:00","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/?p=12041"},"modified":"2022-01-05T20:06:13","modified_gmt":"2022-01-05T19:06:13","slug":"ci-cd-error-free-code","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/","title":{"rendered":"Producing Error-Free Code With CI\/CD"},"content":{"rendered":"\t\t\t\t<div class=\"wp-block-uagb-table-of-contents uagb-toc__align-left uagb-toc__columns-1  uagb-block-4dcbec20      \"\n\t\t\t\t\tdata-scroll= \"1\"\n\t\t\t\t\tdata-offset= \"30\"\n\t\t\t\t\tstyle=\"\"\n\t\t\t\t>\n\t\t\t\t<div class=\"uagb-toc__wrap\">\n\t\t\t\t\t\t<div class=\"uagb-toc__title\">\n\t\t\t\t\t\t\tTable Of Contents\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"uagb-toc__list-wrap \">\n\t\t\t\t\t\t<ol class=\"uagb-toc__list\"><li class=\"uagb-toc__list\"><a href=\"#gather-knowledge-on-your-bugs\" class=\"uagb-toc-link__trigger\">Gather Knowledge on Your Bugs<\/a><li class=\"uagb-toc__list\"><a href=\"#make-the-most-of-your-feedback-with-cicd-pipelines\" class=\"uagb-toc-link__trigger\">Make The Most of Your Feedback with CI\/CD Pipelines<\/a><li class=\"uagb-toc__list\"><a href=\"#collaborate-with-repositories\" class=\"uagb-toc-link__trigger\">Collaborate With Repositories\u00a0<\/a><li class=\"uagb-toc__list\"><a href=\"#reduce-risk-with-a-cloud-environment\" class=\"uagb-toc-link__trigger\">Reduce Risk With a Cloud Environment<\/a><li class=\"uagb-toc__list\"><a href=\"#be-smart-with-your-cicd-automation\" class=\"uagb-toc-link__trigger\">Be Smart With Your CI\/CD Automation<\/a><li class=\"uagb-toc__list\"><a href=\"#dont-stop-iterating-on-your-cicd-pipeline\" class=\"uagb-toc-link__trigger\">Don&#039;t Stop Iterating on Your CI\/CD Pipeline<\/a><\/ol>\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\n\n\n<p><strong>CI\/CD pipelines<\/strong> are great <span id=\"urn:enhancement-2042b944\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/programming_tool\">tools<\/span> for <span id=\"urn:enhancement-65d819d0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">software developers<\/span> for many reasons. But chief among them is the different ways they can automate the testing and <span id=\"urn:enhancement-bd0ea4e4\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deployment<\/span> of <span id=\"urn:enhancement-721dc5ec\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>. It\u2019s laborious and <span id=\"urn:enhancement-a1fdc10a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cost\">time-consuming<\/span> to <strong>produce <span id=\"urn:enhancement-47007a7c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/error\">error<\/span>-free <span id=\"urn:enhancement-2966b3b6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span><\/strong> if you use manual review cycles and <span id=\"urn:enhancement-36a4768b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> that never change over time.&nbsp;<\/p>\n\n\n\n<p><a href=\"https:\/\/semaphoreci.com\/cicd\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">CI\/CD pipelines<\/a> automate your code\u2019s development and break down silos between <span id=\"urn:enhancement-7b6553d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">teams<\/span>. This allows you to more consistently produce a final <span id=\"urn:enhancement-c6742de9\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/application_software\">software application<\/span> product that is one-hundred percent <span id=\"urn:enhancement-16c02236\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/error\">error<\/span>-free.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-gather-knowledge-on-your-bugs\">Gather Knowledge on Your Bugs<\/h2>\n\n\n\n<p>It&#8217;s easier to address <span id=\"urn:enhancement-c96e7008\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/errors_and_residuals_in_statistics\">errors<\/span> in <span id=\"urn:enhancement-1562a32f\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> that you&#8217;ve just worked on than those in <span id=\"urn:enhancement-340e7f6e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer_program\">programs<\/span> you worked on months ago. <span id=\"urn:enhancement-f4e5dc2b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_development\">Software development<\/span> teams <a href=\"https:\/\/medium.com\/@SherrieRose\/software-project-team-roles-and-responsibilities-152a7d575759\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">need multiple people<\/a> to fill roles like database administrators, <span id=\"urn:enhancement-e6ba5b26\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/quality_assurance\">quality assurance<\/span> leads, and security ops so that they can push safe <span id=\"urn:enhancement-58273610\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> into their production environments.&nbsp;<\/p>\n\n\n\n<p><strong><span id=\"urn:enhancement-3f0490b0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">Bugs<\/span> in your <span id=\"urn:enhancement-f113296e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span><\/strong> can compromise the way your teammates fulfill their duties, which means you want to know as much about your <span id=\"urn:enhancement-11bda11a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">bugs<\/span> as soon as possible. CI\/CD pipelines help take care of detecting problems early.&nbsp;<\/p>\n\n\n\n<p>Instead of dwelling too long on the <a href=\"https:\/\/www.codemotion.com\/magazine\/articles\/news\/full-time-bug-hunting-pros-and-cons-of-an-emerging-career\/\" class=\"ek-link\">bug<\/a> itself, take the opportunity to document when a <span id=\"urn:enhancement-5b4ca811\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">bug<\/span> is detected, what parts of your <span id=\"urn:enhancement-2449188b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> the <span id=\"urn:enhancement-d00b96fe\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">bug<\/span> affects, and the steps you take to fix the issue. You need to properly document <span id=\"urn:enhancement-b543b9d6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">bugs<\/span> that you <span id=\"urn:enhancement-9732bc4d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/error_detection_and_correction\">detect<\/span> early on to make it easy to build gathered <span id=\"urn:enhancement-792ea497\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/knowledge\">knowledge<\/span> of past <span id=\"urn:enhancement-4042f0c7\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">bugs<\/span> and address similar <span id=\"urn:enhancement-bd1ec114\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/errors_and_residuals_in_statistics\">errors<\/span> in the future.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-make-the-most-of-your-feedback-with-ci-cd-pipelines\">Make The Most of Your Feedback with CI\/CD Pipelines<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/09\/coding-1024x576.jpg\" alt=\"coding developer\" class=\"wp-image-8706\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/09\/coding-1024x576.jpg 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/09\/coding-300x169.jpg 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/09\/coding-768x432.jpg 768w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/09\/coding-896x504.jpg 896w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/09\/coding-400x225.jpg 400w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/09\/coding.jpg 1200w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p><strong><span id=\"urn:enhancement-d6ed474d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feedback\">Feedback<\/span> is an easily forgotten <span id=\"urn:enhancement-246737e6\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/component-based_software_engineering\">component<\/span> of CI\/CD pipeline<\/strong> <span id=\"urn:enhancement-3a93d950\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> that heavily impacts your final software product. CI\/CD pipelines not only make testing and <span id=\"urn:enhancement-912ea13b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deployment<\/span> of <span id=\"urn:enhancement-4c8d43eb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> easier, but they also make giving and receiving <span id=\"urn:enhancement-20f26128\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feedback\">feedback<\/span> on your <span id=\"urn:enhancement-21ee84b5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> much more efficient.&nbsp;<\/p>\n\n\n\n<p>Quick and efficient CI\/CD pipeline review <span id=\"urn:enhancement-137aac\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> let other <span id=\"urn:enhancement-ad800dcf\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> quickly check <span id=\"urn:enhancement-d1bb4d3d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> and receive <span id=\"urn:enhancement-63d993e5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feedback\">feedback<\/span>, sometimes as quickly as the reviewed <span id=\"urn:enhancement-eaca4674\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> was written. A key part of effective <span id=\"urn:enhancement-bcc0d55d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feedback\">feedback<\/span> that your CI\/CD pipeline makes possible is the lack of <span id=\"urn:enhancement-ed806\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/context_switch\">context switching<\/span>.&nbsp;<\/p>\n\n\n\n<p>Imagine that you&#8217;re walking into a meeting, only to be asked to review a new <span id=\"urn:enhancement-4fdc88e3\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_feature\">feature<\/span> of <span id=\"urn:enhancement-7c91d0d3\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> for a <span id=\"urn:enhancement-7b0d08fe\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span> you haven&#8217;t ever been pulled into. <span id=\"urn:enhancement-3fcf0812\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feedback\">Feedback<\/span> using CI\/CD pipelines eliminates this risk of being left out of the loop by always engaging other <span id=\"urn:enhancement-1151b27b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> as quickly as possible, so as to facilitate meaningful and productive <span id=\"urn:enhancement-73cf20d2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feedback\">feedback<\/span> for your <span id=\"urn:enhancement-f4c3be0f\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-collaborate-with-repositories\">Collaborate With Repositories&nbsp;<\/h2>\n\n\n\n<p><strong>CI\/CD pipelines work best when every <span id=\"urn:enhancement-5ee5afef\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developer<\/span> uses <span id=\"urn:enhancement-95d33a14\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/revision_control\">version control<\/span><\/strong>. Code <span id=\"urn:enhancement-ab27a2ef\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_repository\">repositories<\/span> allow authorized members of your <span id=\"urn:enhancement-92f3ad77\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project_team\">project team<\/span> to access, view, change, <span id=\"urn:enhancement-530e5f85\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_deployment\">deploy<\/span>, and document their <span id=\"urn:enhancement-55cb3648\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>. You can increase <span id=\"urn:enhancement-adffafcb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/collaboration\">collaboration<\/span> and therefore decrease <span id=\"urn:enhancement-6770894a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">bugs<\/span> in your <span id=\"urn:enhancement-8e72c227\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> by applying <span id=\"urn:enhancement-66cb41dc\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/revision_control\">version control<\/span> with a single <span id=\"urn:enhancement-36499f14\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_repository\">repository<\/span> for your <span id=\"urn:enhancement-1a9eff3a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>.<\/p>\n\n\n\n<p><span id=\"urn:enhancement-9aa05287\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/continuous_integration_2\">CI<\/span>\/CD improves <span id=\"urn:enhancement-518533f0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/collaboration\">collaboration<\/span> in <span id=\"urn:enhancement-fbd93ef0\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_repository\">repositories<\/span> by giving each <span id=\"urn:enhancement-3af46004\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developer<\/span> a certain level of freedom. You can assign <span id=\"urn:enhancement-6cc4f113\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span> to work on different segments of the same sheet of <span id=\"urn:enhancement-4951b32a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> all in the same code repository.&nbsp;<\/p>\n\n\n\n<p>This separate-but-equal approach lets your <a href=\"https:\/\/www.forbes.com\/sites\/markmurphy\/2016\/10\/30\/interruptions-at-work-are-killing-your-productivity\/#682a9ae11689\">team members work uninterrupted<\/a> and identify their own conflicts with each others\u2019 changes. By the time you and your <span id=\"urn:enhancement-a739b006\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> push your <span id=\"urn:enhancement-253ff5b8\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> into a production environment, you can safely assume the majority of <span id=\"urn:enhancement-9bfce527\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">bugs<\/span> are dealt with.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-reduce-risk-with-a-cloud-environment\">Reduce Risk With a Cloud Environment<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"696\" height=\"480\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image3.png\" alt=\"CI\/CD\" class=\"wp-image-12043\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image3.png 696w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/image3-300x207.png 300w\" sizes=\"auto, (max-width: 696px) 100vw, 696px\" \/><\/figure><\/div>\n\n\n\n<p><strong>CI\/CD pipelines should be hosted on cloud server environments to safeguard your data<\/strong>, including the <span id=\"urn:enhancement-3d759f3f\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> you develop. Cloud environments for your CI\/CD pipelines can help you manage tons of different parts of your development environment, from testing automation to the way you deploy your <span id=\"urn:enhancement-742c3be2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> into production.&nbsp;<\/p>\n\n\n\n<p>These <span id=\"urn:enhancement-5d6fa6aa\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cloud_computing\">cloud<\/span> environments also enable crucial tests like the <strong>unit and system testing for your <span id=\"urn:enhancement-aa4b3dd1\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span><\/strong>, which you can often use by leveraging your own cloud resources instead of relying on <span id=\"urn:enhancement-84c85166\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cost\">expensive<\/span> and slow network resources on-site. <span id=\"urn:enhancement-7c6f6f4c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/cloud_computing\">Cloud<\/span> environments are especially interesting because they can act as a point of contact between your real production environment and the <span id=\"urn:enhancement-b4770c7d\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/computer\">computers<\/span> you&#8217;re using to create <span id=\"urn:enhancement-f6f3ee5c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>.&nbsp;<\/p>\n\n\n\n<p>You can set up different kinds of testing systems in cloud environments that create replicas of the real live environments you deploy your <span id=\"urn:enhancement-571ea007\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> to. Your <span id=\"urn:enhancement-9a260e3a\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> can use these testing methods to run and verify tests without ever compromising the <span id=\"urn:enhancement-a25d9e34\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span> you have stored on your physical machines.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Be Smart With Your CI\/CD Automation<\/h2>\n\n\n\n<p>It can be tempting to try and automate every single one of your software development <span id=\"urn:enhancement-35498d8c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span>. You may even opt to use <a href=\"https:\/\/www.ntaskmanager.com\/product\/\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">expert productivity tools<\/a> to keep on track, but the amount that you automate certain <span id=\"urn:enhancement-a24f5e98\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> can inversely affect your <span id=\"urn:enhancement-3485431c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span>&#8216;s output of robust, error-free <span id=\"urn:enhancement-a90c22c8\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>.&nbsp;<\/p>\n\n\n\n<p>Pick and choose which parts of your <span id=\"urn:enhancement-51bffec3\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_development_process\">software development lifecycle<\/span> you automate, and try to quantify the efficiencies and time saved your automation achieves. Be smart with what you automate by focusing on <span id=\"urn:enhancement-2f6ee57f\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> that affect the most <span id=\"urn:enhancement-d75307b9\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">teams<\/span>, data assets, computing and networking resources, and end-<span id=\"urn:enhancement-a92a0560\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_computing\">users<\/span> and clientele.&nbsp;<\/p>\n\n\n\n<p>If there&#8217;s a <span id=\"urn:enhancement-dabec860\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span> that is admittedly <span id=\"urn:enhancement-492cdf2b\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_bug\">buggy<\/span> but isn&#8217;t mission-critical to you and your <span id=\"urn:enhancement-156af1fb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_computing\">user<\/span> audience, you can safely shelve it (for now) in lieu of more involved and frequently used scenarios. It\u2019s a good idea to engage your business as well <a href=\"https:\/\/www.pmi.org\/learning\/library\/engaging-stakeholders-project-success-11199\" target=\"_blank\" aria-label=\" (opens in a new tab)\" rel=\"noreferrer noopener\" class=\"ek-link\">as IT stakeholders regarding<\/a> which <span id=\"urn:enhancement-4a953fe1\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/continuous_integration_2\">CI<\/span>\/CD <span id=\"urn:enhancement-6b709608\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> you automate.&nbsp;<\/p>\n\n\n\n<p>They may all have different opinions on what your end product should look like. However, if you make a sound case for automating a <span id=\"urn:enhancement-d2041beb\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">process<\/span> by presenting the proposed outcome and benefits to your product\u2019s stakeholders, you stand a better chance of automating the <span id=\"urn:enhancement-b7b94de2\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> you want both now and during future development projects.&nbsp;&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Don&#8217;t Stop Iterating on Your CI\/CD Pipeline<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"471\" src=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/logo-2-1024x471.gif\" alt=\"DevOps CI\/CD\" class=\"wp-image-12046\" srcset=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/logo-2-1024x471.gif 1024w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/logo-2-300x138.gif 300w, https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/logo-2-768x353.gif 768w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure><\/div>\n\n\n\n<p>The worst thing that you can do for your software development efforts is to stop iterating on and making changes to your <span id=\"urn:enhancement-f3357d32\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/continuous_integration_2\">CI<\/span>\/CD pipeline. You and your <span id=\"urn:enhancement-82c41215\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span> will rely on continuous changes to your <span id=\"urn:enhancement-ba123e37\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/process_computing\">processes<\/span> and ways to check for quality and errors.&nbsp;<\/p>\n\n\n\n<p>There&#8217;s no way that any software development <span id=\"urn:enhancement-922102de\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/team\">team<\/span>, no matter how talented and experienced, can ignore <span id=\"urn:enhancement-684c1588\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/errors_and_residuals_in_statistics\">errors<\/span> one-hundred percent of the time. Make sure to take the time and build in ways to check for quality based on prior experiences with identifying, resolving, and documenting <span id=\"urn:enhancement-bc30c376\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/errors_and_residuals_in_statistics\">errors<\/span> in your <span id=\"urn:enhancement-faa306b7\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/source_code\">code<\/span>.&nbsp;<\/p>\n\n\n\n<p>You can also achieve <strong>more productive changes<\/strong> to your <span id=\"urn:enhancement-55c3a2c\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/feedback\">feedback<\/span> by sitting down and conducting peer reviews with other <span id=\"urn:enhancement-acb41aa5\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/software_developer\">developers<\/span>, as well as engaging other stakeholders who are involved with your <span id=\"urn:enhancement-a5bb4e4e\" class=\"textannotation disambiguated wl-thing\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/project\">project<\/span>.<\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>CI\/CD pipelines are great tools for software developers for many reasons. But chief among them is the different ways they can automate the testing and deployment of code. It\u2019s laborious and time-consuming to produce error-free code if you use manual review cycles and processes that never change over time.&nbsp; CI\/CD pipelines automate your code\u2019s development&#8230; <a class=\"more-link\" href=\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\">Read more<\/a><\/p>\n","protected":false},"author":67,"featured_media":12042,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":4,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[3356],"tags":[],"collections":[],"class_list":{"0":"post-12041","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-devops","8":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v26.9) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>CI\/CD: how to produce error-free code - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"Learning how to use CI\/CD pipelines can help you and your team to produce one-hundred percent error-free code.\" \/>\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.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Producing Error-Free Code With CI\/CD\" \/>\n<meta property=\"og:description\" content=\"Learning how to use CI\/CD pipelines can help you and your team to produce one-hundred percent error-free code.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:author\" content=\"#\" \/>\n<meta property=\"article:published_time\" content=\"2020-11-09T15:48:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-05T19:06:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Lorenzo Ermigiotti\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@#\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lorenzo Ermigiotti\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\"},\"author\":{\"name\":\"Lorenzo Ermigiotti\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/e54433adb771f0b877d4127bade34b40\"},\"headline\":\"Producing Error-Free Code With CI\/CD\",\"datePublished\":\"2020-11-09T15:48:00+00:00\",\"dateModified\":\"2022-01-05T19:06:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\"},\"wordCount\":1117,\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg\",\"articleSection\":[\"DevOps\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\",\"name\":\"CI\/CD: how to produce error-free code - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg\",\"datePublished\":\"2020-11-09T15:48:00+00:00\",\"dateModified\":\"2022-01-05T19:06:13+00:00\",\"description\":\"Learning how to use CI\/CD pipelines can help you and your team to produce one-hundred percent error-free code.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg\",\"width\":1200,\"height\":675},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DevOps\",\"item\":\"https:\/\/www.codemotion.com\/magazine\/devops\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Producing Error-Free Code With CI\/CD\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#website\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"contentUrl\":\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Codemotion.Italy\/\",\"https:\/\/x.com\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/e54433adb771f0b877d4127bade34b40\",\"name\":\"Lorenzo Ermigiotti\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f84c267900f04a567ce1305c970bdb4520775aae41992ae028d80e84dc7009a9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f84c267900f04a567ce1305c970bdb4520775aae41992ae028d80e84dc7009a9?s=96&d=mm&r=g\",\"caption\":\"Lorenzo Ermigiotti\"},\"sameAs\":[\"#\",\"https:\/\/x.com\/#\"],\"url\":\"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-ermigiotti\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CI\/CD: how to produce error-free code - Codemotion Magazine","description":"Learning how to use CI\/CD pipelines can help you and your team to produce one-hundred percent error-free code.","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.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/","og_locale":"en_US","og_type":"article","og_title":"Producing Error-Free Code With CI\/CD","og_description":"Learning how to use CI\/CD pipelines can help you and your team to produce one-hundred percent error-free code.","og_url":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_author":"#","article_published_time":"2020-11-09T15:48:00+00:00","article_modified_time":"2022-01-05T19:06:13+00:00","og_image":[{"width":1200,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg","type":"image\/jpeg"}],"author":"Lorenzo Ermigiotti","twitter_card":"summary_large_image","twitter_creator":"@#","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Lorenzo Ermigiotti","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/"},"author":{"name":"Lorenzo Ermigiotti","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/e54433adb771f0b877d4127bade34b40"},"headline":"Producing Error-Free Code With CI\/CD","datePublished":"2020-11-09T15:48:00+00:00","dateModified":"2022-01-05T19:06:13+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/"},"wordCount":1117,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg","articleSection":["DevOps"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/","url":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/","name":"CI\/CD: how to produce error-free code - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg","datePublished":"2020-11-09T15:48:00+00:00","dateModified":"2022-01-05T19:06:13+00:00","description":"Learning how to use CI\/CD pipelines can help you and your team to produce one-hundred percent error-free code.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg","width":1200,"height":675},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/devops\/ci-cd-error-free-code\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"DevOps","item":"https:\/\/www.codemotion.com\/magazine\/devops\/"},{"@type":"ListItem","position":3,"name":"Producing Error-Free Code With CI\/CD"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/e54433adb771f0b877d4127bade34b40","name":"Lorenzo Ermigiotti","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f84c267900f04a567ce1305c970bdb4520775aae41992ae028d80e84dc7009a9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f84c267900f04a567ce1305c970bdb4520775aae41992ae028d80e84dc7009a9?s=96&d=mm&r=g","caption":"Lorenzo Ermigiotti"},"sameAs":["#","https:\/\/x.com\/#"],"url":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-ermigiotti\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-600x600.jpg","author_info":{"display_name":"Lorenzo Ermigiotti","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-ermigiotti\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg",1200,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-300x169.jpg",300,169,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-768x432.jpg",768,432,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-1024x576.jpg",1024,576,true],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg",1200,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg",1200,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash.jpg",100,56,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/11\/markus-spiske-4T5MTKMrjZg-unsplash-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Lorenzo Ermigiotti","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-ermigiotti\/"},"uagb_comment_info":0,"uagb_excerpt":"CI\/CD pipelines are great tools for software developers for many reasons. But chief among them is the different ways they can automate the testing and deployment of code. It\u2019s laborious and time-consuming to produce error-free code if you use manual review cycles and processes that never change over time.&nbsp; CI\/CD pipelines automate your code\u2019s development&#8230;&hellip;","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/67"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=12041"}],"version-history":[{"count":5,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12041\/revisions"}],"predecessor-version":[{"id":12132,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/12041\/revisions\/12132"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/12042"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=12041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=12041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=12041"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=12041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}