10 December 2025
CI/CD runners on GitLab CE: a small win worth celebrating
I stood up my own GitLab CE runners and automated deployments without leaning on an off the shelf service.
December brought a quiet but meaningful win. I finally stood up CI/CD runners in GitLab CE (yeah, Gitea didn't scratch my itch!) and integrated them into my deployment flow. Releases now move through a predictable pipeline instead of being kicked off by a script I have to remember to run by hand.
I deliberately avoided an off-the-shelf hosted service. I wanted to understand the moving parts, own the configuration end to end, and build something that fits my platform rather than bending the platform to fit a tool. It took longer, but the result feels solid.
Pipelines run cleanly. Deployments are consistent. Failures surface early and clearly. When a build breaks, tests fail and I know about it immediately. When something unexpected happens further down the line, getting back to a known good state is fast and repeatable.
The day-to-day interaction is almost trivial now:
'git commit -m "commit note" && git push origin main'
Behind that simplicity sits a set of guardrails that remove manual steps without removing intent or control. Automation replaces repetition, not judgement, and that’s where the confidence comes from.
On paper, this is a small change. In practice, it’s a shift in how the platform behaves: less manual work, less reliance on ad-hoc scripting, and a clearer, calmer path from commit to release. Small wins like this compound, and this one felt worth celebrating.
Comments load on request because GitHub may set cookies. See the privacy policy.