DEV Community

Benjamin Godfrey
Benjamin Godfrey

Posted on

Homemade CI/CD Pipeline - Part 1: Git

Week 1: Demystifying the Remote

This past week marked the official start of my DIY CI/CD pipeline project. My first goal was to come up with a way to manage git repos.

I wanted to host my code without relying on GitHub or GitLab. When I clone a repo at work, the address usually looks something like this:

git clone git@github.com:path/to.git

Looking at that through the lens of a Linux terminal, it’s clearly just pointing to a path on a machine via SSH. I had a hunch that setting up my own remote server couldn't be as simple as just pointing to a folder on a spare machine.

It turns out, it really is that easy.

The "Aha!" Moment

Realising that Git is essentially just a series of file transfers over SSH was a massive confidence boost. It’s easy to look at a project like "building a CI/CD pipeline" and feel overwhelmed by the scale, but this early win reminded me that I already understand the core technologies at play. I’m just putting them together in a new way.

To manage this, I’ve put together a few Bash scripts to handle my Git settings and repository initialisation.

You can find the current scripts in the src/scripts directory of my project repo here: CI-CD-BG on GitHub.

The Road Ahead: From SSH to HTTP?

Now that the "Store" part of the pipeline is working, I’m venturing into the unknown.

Currently, I have to manually SSH into the server to run my management scripts. For the next phase, I’m considering setting up a lightweight HTTP server. The goal is to be able to trigger my build and test scripts via webhooks or simple HTTP requests rather than maintaining a manual SSH session.

This moves the project from "running scripts on a box" to "building a service," and I’m excited (and slightly terrified) to see how it holds up.

Top comments (0)