How CI/CD Supercharged My Workflow 🚀

Feb 10, 2024Setting up my CI/CD pipeline to automate after development tasks

Generic CI/CD or DevOps pipeline setup

Introduction

There is always room for automation if the task is repetitive, and I was looking for a way to delegate all the chores that I needed to do to a cloud server that does everything when I push my changes to the project repo.

I was skeptical of the hype surrounding CI/CD. All that automation and all those pipelines seemed like an unnecessary hurdle on the path to getting things done. But I was tired of the manual testing, the merge conflicts, and the last-minute scrambles before deployments.

Efficiency was suffering, and something had to change.

So, I took the plunge and implemented CI/CD in my workflow. Did it pay off?

Buckle up, fellow developers, because I’m here to spill the tea.


The Initial Struggle 😓

Let’s be honest — setting up CI/CD isn’t a walk in the park.

There’s:

  • A learning curve
  • Tooling and configurations to handle
  • The struggle to get the team on board

But hey — no pain, no gain, right?


The Efficiency Revolution 💥

Once the dust settled, CI/CD transformed everything:

1. 🚦 Automated Testing

No more tedious manual testing! Automated tests run with every commit, catching bugs early. This saved me countless hours and headaches.

2. ⚡ Faster Feedback

Every push triggers a pipeline. I got instant feedback on the health of my code — fixing issues before they snowballed.

3. 🚀 Streamlined Deployments

Manual deploys full of errors? Gone. CI/CD automates everything — faster, safer, more reliable.

4. 🤝 Improved Collaboration

Version control + automated builds = better team transparency and smoother collaboration.

5. 🧘 Peace of Mind

I could finally focus on code instead of worrying about how to ship it.


Free CI/CD with GitHub and GitLab 🆓

One of the best parts? CI/CD is accessible.

✅ GitHub Actions

  • Free for public repos
  • Free for private repos up to 2,000 minutes/month
  • Unlimited if you host your own runner
  • Great for automating build, test, and deploy steps

📖 GitHub Actions Quickstart


✅ GitLab CI/CD

Free tier includes:

  • 5 GB of storage
  • 10 GB of data transfer/month
  • 400 CI/CD minutes/month
  • 5 users per namespace

Also available for open-source projects on GitHub via GitLab CI/CD.


✅ Vercel (My Favorite for Frontend)

Vercel offers one-click CI/CD integration.

  • Automatically builds every branch or PR
  • Deploys to a live preview URL
  • Makes testing UI changes effortless

➡️ Try it here


Gitflow Branching Model 🧩

A structured workflow requires a proper branching model. For this, I use Gitflow:

  • Develop branch for feature integration
  • Main branch for stable, production-ready code

✅ Only merge into main when you're ready for production


Example: GitHub Actions YAML 🧾

Here’s an example CI pipeline for a Python app:

name: Example Build Python App

on:
  push:
    branches:
      - main  # Trigger workflow only on main branch pushes

env:
  environment: Prod

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v2

    - name: Set up Python
      uses: actions/setup-python@v2
      with:
        python-version: ${{ vars.python_version }}

    - name: Install dependencies
      run: |
        pip install -r requirements.txt
        pip install ruff pytest

    - name: Build
      run: python setup.py build

    - name: Test with pytest
      run: pytest tests.py --doctest-modules --junitxml=junit/test-${{ env.environment }}-results.xml

    - name: Upload pytest test results
      uses: actions/upload-artifact@v3
      with:
        name: pytest-results
        path: junit/test-${{ env.environment }}-results.xml

This workflow:

  • Triggers on pushes to main
  • Installs dependencies
  • Builds the app
  • Runs tests
  • Uploads test artifacts

Beyond the Free Plans 💳

As your project grows, consider upgrading:

  • More build minutes
  • Parallel jobs for faster pipelines
  • Advanced caching to save time
  • 3rd-party integrations

Both GitHub and GitLab offer flexible paid plans.


Not All Sunshine and Rainbows 🌧️

It’s not perfect. Here’s what I learned:

  1. Setup Time — Initial setup takes effort and planning.
  2. Maintenance — Pipelines need occasional upkeep.
  3. Learning Curve — But tons of tutorials are available.

The Verdict ✅

Am I more efficient now?

Absolutely YES!

CI/CD:

  • Boosted my speed
  • Improved code quality
  • Reduced my stress

If you’re on the fence — just start. Even basic pipelines can make a huge difference.


Share Your Journey 💬

This was my experience. What’s yours?

Let’s talk about:

  • What worked
  • What didn’t
  • Your favorite CI/CD tools

Happy coding! 💪

© Rayan Fernandes. All Rights Reserved.