Skip to main content

Phase 7 — CI/CD Platform

Build a pipeline that automatically builds, tests, and deploys code.


Option A — Gitea (Lightweight)

Self-hosted Git platform, minimal resources.

✔ Lightweight (~200MB RAM)
✔ GitHub-like UI
✔ Built-in CI (Gitea Actions, GitHub Actions-compatible)
✔ Good for small teams

Option B — GitLab (Full)

Full DevOps platform with integrated CI/CD.

✔ Full CI/CD pipelines
✔ Container registry
✔ Kubernetes integration
✔ Requires more resources (~2-4GB RAM)

CI/CD Pipeline Flow

Developer pushes code


GitLab/Gitea

CI Pipeline runs:
- Build Docker image
- Run tests
- Push to registry


ArgoCD detects new image tag


Deploys to Kubernetes cluster

GitLab Runner Setup

# Install GitLab Runner on a node
curl -L https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh | sudo bash
sudo apt install gitlab-runner

# Register runner
sudo gitlab-runner register

GitLab Agent for Kubernetes

Connects GitLab to your cluster for pull-based deployments:

helm repo add gitlab https://charts.gitlab.io
helm install gitlab-agent gitlab/gitlab-agent \
--namespace gitlab-agent \
--create-namespace \
--set config.token=<AGENT_TOKEN> \
--set config.kasAddress=wss://kas.gitlab.com

Done When

✔ Git push triggers pipeline
✔ Pipeline builds and tests
✔ Auto-deploy to cluster on success