<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Git Family]]></title><description><![CDATA[Git Family]]></description><link>https://gitfamily.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 06:43:32 GMT</lastBuildDate><atom:link href="https://gitfamily.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Retry Pipeline: The Most Pressed Button in My Career]]></title><description><![CDATA[Hello guys,Welcome back to the discussion on a new topic of “Gitlab”, Because Pushing to Production Should Always Feel Like Extreme Sports.
What is Gitlab?
Gitlab is a web-based DevOps lifecycle management tool.
GitLab uses Git for version control — ...]]></description><link>https://gitfamily.hashnode.dev/retry-pipeline-the-most-pressed-button-in-my-career</link><guid isPermaLink="true">https://gitfamily.hashnode.dev/retry-pipeline-the-most-pressed-button-in-my-career</guid><category><![CDATA[GitLab]]></category><category><![CDATA[CI/CD]]></category><category><![CDATA[Devops]]></category><dc:creator><![CDATA[Jayesh Wadhwani]]></dc:creator><pubDate>Sun, 02 Nov 2025 17:56:05 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1762106056363/a181cb92-c1ec-4c82-a7b4-d1397d998d57.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hello guys,<br />Welcome back to the discussion on a new topic of “Gitlab”, Because Pushing to Production Should Always Feel Like Extreme Sports.</p>
<p>What is Gitlab?</p>
<p>Gitlab is a web-based DevOps lifecycle management tool.</p>
<p>GitLab uses Git for version control — meaning you can track every change you <em>or someone you’d like to blame</em> has ever made.</p>
<p>It’s great because you can see who introduced the bug.</p>
<p>Gitlab Provides features like: -</p>
<ol>
<li><p>CI/CD pipeline feature</p>
</li>
<li><p>Collaboration on code and project management</p>
</li>
<li><p>Monitoring and security tool Automates --&gt; Build, test, deploy</p>
</li>
</ol>
<h1 id="heading-cicd">CI/CD: -</h1>
<p>In simple terms these are just lines of code that are written in a text file named “.gitlab-ci.yml” which helps in automation.</p>
<p>Professionally it is a method of frequently delivering apps to customers by introducing automation into the stages of app development.</p>
<p>CI/CD Pipelines are magical scripts that:</p>
<ol>
<li><p>Work flawlessly when you don’t need them.</p>
</li>
<li><p>Explode when your manager is watching.</p>
</li>
</ol>
<p>Fail with error messages that might as well say:</p>
<blockquote>
<p>Something broke. Not telling you what. Figure it out. Good luck.</p>
<p>The best part?<br />You run it again and <strong>it passes</strong>.<br />For no reason.</p>
</blockquote>
<h3 id="heading-ci-continuous-integration">CI → Continuous Integration</h3>
<ol>
<li><p>It means Build → Test → Merge<br /> Build the code in your text editor then test it locally and then push it to the branch which will have the pipeline that will perform testing and then merge to your main branch</p>
</li>
<li><p>This is about building and testing your code. Every time you push code or merge into a branch, GitLab automatically runs jobs like:</p>
<ol>
<li><p>Compile / Build</p>
</li>
<li><p>Run tests</p>
</li>
<li><p>Static code checks / linting</p>
</li>
<li><p>Code quality / security scans</p>
</li>
</ol>
</li>
</ol>
<p>Goal of CI: Ensure code is correct, tested, and stable before moving forward.</p>
<p>Think of CI as "Does the code work?"</p>
<h3 id="heading-cd-continuous-delivery-continuous-deployment">CD → Continuous Delivery/ Continuous Deployment</h3>
<ol>
<li><p>Continuous Delivery: -</p>
<p> Code is packaged and ready for release, but someone should give the approval for deployment</p>
<p> Requires manual approval</p>
</li>
<li><p>Continuous Deployment: -</p>
<p> Code is automatically deployed to production whenever CI passes.</p>
</li>
</ol>
<p>Goal of CD: - Deliver new features to users quickly and safely.</p>
<p>Think of CD as "Ship the working code to servers / cloud / production."</p>
<h3 id="heading-example-of-ci-cd">Example of CI / CD: -</h3>
<p>Let’s say I am having a python project that performs some rocket science. Now if I will perform some actions on this python code …</p>
<ol>
<li><p>Created a dev branch and made some changes to it.</p>
</li>
<li><p>Pushed code to <strong>dev branch</strong></p>
</li>
<li><p>Then created a <strong>Merge Request</strong> → dev → main</p>
</li>
<li><p>When the merge happened, <strong>GitLab pipeline ran</strong> and generated your <strong>.exe artifact</strong></p>
</li>
</ol>
<p>Now, where is CI?</p>
<h4 id="heading-ci-continuous-integration-1"><strong>CI (Continuous Integration)</strong></h4>
<p>This is everything that happens when I am pushing code or create a merge request.<br />In my case:</p>
<ul>
<li><p>I pushed code to dev.</p>
</li>
<li><p>Pipeline checks/builds the code.</p>
</li>
<li><p>It compiles and creates .exe inside artifacts.</p>
</li>
<li><p>It confirms <strong>"My code does not explode (yet)."</strong></p>
</li>
</ul>
<p>So, <strong>build + test + artifact creation = CI</strong></p>
<p><strong>CI = Making sure your code compiles and behaves before merging.</strong></p>
<h4 id="heading-cd-continuous-delivery-deployment"><strong>CD (Continuous Delivery / Deployment)</strong></h4>
<p>Now here’s the twist:</p>
<p>Did the .exe automatically get deployed or copied anywhere (like a server, environment, or production machine)?<br />Or did it just stay inside GitLab artifacts, waiting for someone to download it manually?</p>
<p>If the .exe is just created and stored →<br />→ <strong>This is only CI.</strong><br />No deployment happened yet.</p>
<p>If pipeline <strong>automatically pushes the .exe to some server / environment</strong> →<br />→ That is <strong>CD</strong>.</p>
]]></content:encoded></item></channel></rss>