GIT & CI/CD · TOOL COMPARISON
Git hosting and CI/CD compared: Gitea, GitLab, Forgejo, GitHub, Drone, Woodpecker, Jenkins, Act, ArgoCD
Nine serious tools for code hosting, pipelines, and GitOps. Self-host vs cloud, learning curve, SME fit. As of May 2026.
Researched & fact-checked by: DuneDive LLC · As of: 2026-05
What is this about?
Git hosting and CI/CD are the two pillars of any modern software supply chain. Git hosting manages source code, issues, pull requests, and releases. CI/CD (continuous integration / continuous delivery) builds, tests, and deploys code automatically on every commit. These used to be separate worlds – today the CI system usually ships with the Git host.
For a Swiss SME the tool choice matters more than it looks: it decides data residency (code as a trade secret), monthly cost, learning curve for developers, and whether a single developer or a 20-person team can sensibly operate the system. In May 2026 the cards have been reshuffled: Gitea and Forgejo have established themselves as serious self-host alternatives to GitHub, Woodpecker has overtaken Drone as the community favourite, and ArgoCD has become the standard for Kubernetes deployments.
The nine tools covered here fill four roles: Git hoster (Gitea, GitLab, Forgejo, GitHub), CI engine (Drone, Woodpecker, Jenkins), local test runner (Act), and GitOps deployer (ArgoCD). Not all are directly comparable – but all belong in the decision tree of an SME that takes its supply chain seriously.
Why it matters
Three axes decide the right choice: data residency, pipeline complexity, and operations effort. The wrong tool chain costs months – either through later migration or through daily friction.
Data residency: source code is a trade secret. If you build client software, internal tooling, or proprietary algorithms, you should not casually park the code on a US server. GitHub is owned by Microsoft, its servers sit in the US. For Swiss fiduciary and law firms under professional secrecy (Art. 321 SCC), self-hosting on Hetzner Falkenstein or Helsinki is the clean answer – Gitea, Forgejo, and GitLab Community Edition are the three realistic options.
Pipeline complexity: a pipeline can be very simple (run tests, build a Docker image, copy to a server) or very complex (multi-stage, matrix builds, approval gates, secrets rotation, multi-cloud deployment). Drone, Woodpecker, and Gitea Actions cover 90 percent of SME cases. Jenkins is the heavyweight solution with hundreds of plugins – justified only for very complex pipelines or existing Jenkins know-how.
Operations effort: self-hosting means updates, backups, security patches. Gitea and Forgejo are the most frugal: a single binary, a SQLite database, done. GitLab is the heaviest self-host package – the official Omnibus install uses 4 GB RAM at idle. Jenkins needs Java and a server with enough RAM for build agents. Without a dedicated DevOps person, stay with Gitea or Forgejo.
The nine tools in detail
Gitea (MIT, Go, self-host + Gitea Cloud): the lightweight GitHub clone. A single binary, runs on a 1-vCPU server, integrated Gitea Actions since 2023 (GitHub-Actions-compatible YAML). May 2026: version 1.22, very active community, the SME favourite for self-hosting. Issues, PRs, releases, container registry, packages (npm, pypi, maven). Our default recommendation for Swiss SMEs.
GitLab (MIT Community + EE Proprietary, Ruby/Go, self-host + cloud): the full kit. Code, CI/CD, container registry, issue boards, wiki, security scanning, all in one. Community Edition covers most needs; Enterprise Edition costs from USD 29 per user per month. Heavy to operate (Omnibus image, Postgres, Redis, NGINX, Sidekiq). Sensible for teams from 15 developers or compliance-driven setups.
Forgejo (MIT, Go, self-host): the Codeberg-driven fork of Gitea, born late 2022 after a licensing dispute. Functionally almost identical to Gitea but stricter OSS purist (no commercial cloud, no proprietary modules). May 2026: Forgejo Actions compatible with Gitea Actions and therefore with GitHub Actions. The choice for teams uncomfortable with Gitea governance (now Gitea Ltd.).
GitHub (Proprietary, Microsoft, US): the de-facto standard for OSS. GitHub Actions as CI/CD is mature and ships a huge marketplace ecosystem of prebuilt actions. Free tier covers small projects; Team plan from USD 4 per user per month. Data in the US, unsuitable for strict-confidential code. First choice for open-source projects and teams without CH residency requirements.
Drone CI (Apache 2.0, Go, self-host + Drone Cloud): container-native CI. Every build step runs in a Docker container, pipelines described in simple YAML. Drone was a pioneer; as of May 2026 it is less active – Harness (the owner) focuses on its commercial platform. Functionally solid, but community momentum sits with Woodpecker.
Woodpecker CI (Apache 2.0, Go, self-host): community fork of Drone from 2019, now an independent solution. Very active in May 2026 (release 3.x), Drone pipelines almost 1:1 compatible. Default CI for Gitea/Forgejo setups because of clean licensing. Resource-frugal, clear docs.
Jenkins (MIT, Java, self-host): the veteran, named Jenkins since 2011 (Hudson before). Still widely used in May 2026, especially in enterprise environments. Very powerful via more than 1800 plugins, but configuration via Jenkinsfile (Groovy) is its own world. Steep learning curve, resource hungry, old-school UX. Only sensible when the team has Jenkins know-how or must run very complex pipelines.
Act (MIT, Go, CLI): not a CI server but a local runner for GitHub Actions workflows. Developers run their .github/workflows locally via Docker and see the result before pushing. Saves pipeline minutes and speeds debugging. May 2026: version 0.2.x, very stable, useful in any SME developer toolkit.
ArgoCD (Apache 2.0, Go, self-host on Kubernetes): not a CI tool but a GitOps deployer. ArgoCD watches a Git repository of Kubernetes manifests and reconciles the cluster state automatically – drift becomes visible and fixable. Standard in the Kubernetes ecosystem, overkill without it. May 2026: version 2.13, very active CNCF foundation.
Selection workflow in 6 steps
- 01Check code confidentiality: client code or professional secrecy? If yes, drop GitHub, self-host on CH/EU server (Hetzner Falkenstein/Helsinki).
- 02Estimate team size: 1-5 devs -> Gitea/Forgejo. 5-20 -> Gitea+Woodpecker or GitLab CE. >20 -> GitLab EE or GitHub Enterprise.
- 03Assess pipeline complexity: simple (build+test+deploy) -> built-in actions. Complex (matrix, multi-stage, approvals) -> Jenkins or GitLab CI.
- 04Container workflow in place? If yes, Drone/Woodpecker fit perfectly. If no, built-in runners suffice.
- 05Kubernetes in use? If yes, plan ArgoCD on top – deployments via Git instead of kubectl.
- 06Run a PoC: put one real project on the new tool chain for 2 weeks, measure friction (build time, error rate, documentation availability), only then migrate fully.
Recommendation by use-case
Solo developer or small team (1-5 people), code must stay in CH: Gitea or Forgejo on Hetzner. Built-in actions cover typical pipelines (tests, build, deploy). Setup effort: half a day. Cost: about CHF 6 per month (CX22 instance). Functionally on par with paid GitHub Team plans.
Medium team (5-20 people), compliance important, budget available: GitLab Community Edition self-host, with integrated CI. Everything in one package: code, issues, CI/CD, container registry, wiki. Setup one day, monthly maintenance 2-4 hours. CHF 25-40 per month for hardware (4 vCPU, 8 GB RAM).
OSS project or no compliance pressure: GitHub with GitHub Actions. Fastest start, largest action marketplace, best community. Free tier covers most cases. For a serious production pipeline: Team plan USD 4/user.
Complex multi-cloud pipelines, Jenkins know-how on hand: Jenkins with self-hosted build agents. Only pays off if you already have Jenkinsfiles or need specific plugins absent elsewhere.
Kubernetes deployments: ArgoCD on top. Works with any Git host (Gitea, GitLab, GitHub). Standard for clusters from 3-5 apps with frequent deployments.
Local testing of actions before pushing: Act CLI. Saves pipeline minutes, speeds iteration. Costs nothing, setup 5 minutes.
When these tools are wrong
For a single script that runs once a quarter, a full CI pipeline is overkill – a plain cron job on the target server does. For a solo developer without compliance needs, self-hosting GitLab is economic nonsense – GitHub Free or Gitea Cloud are enough.
If you have no container workflow (everything runs directly on a VPS, no Docker, no Kubernetes), ArgoCD has no function. Drone and Woodpecker (both container-native) also bring little – a classic shell pipeline over SSH is simpler.
Jenkins is the wrong choice when your team stays below 5 developers and brings no Jenkins experience. Learning curve and maintenance are then disproportionate to the value – Gitea Actions or Woodpecker deliver 80 percent of functionality at 20 percent of the effort.
GitHub is the wrong choice for code under professional secrecy (Art. 321 SCC) or where a data-transfer impact assessment to the US has not been completed. Even the enterprise Data Residency tier helps only partially – the parent group remains a US person and is subject to US subpoena law.
Trade-offs
STRENGTHS
- Gitea/Forgejo: lightweight, SME-fit, CH residency simple
- GitLab: everything in one package, good for compliance setups
- GitHub: largest ecosystem, best OSS integration
- Woodpecker: container-native, very active community May 2026
- ArgoCD: GitOps standard for Kubernetes, very stable
WEAKNESSES
- GitHub: data in the US, unsuitable for professional-secrecy code
- GitLab Omnibus: resource hungry, 4 GB RAM at idle
- Jenkins: steep learning curve, Groovy DSL, plugin sprawl
- Drone CI: lost community momentum, prefer Woodpecker
- ArgoCD: only useful with Kubernetes
FAQ
Is Gitea really enough for production code in Switzerland?
Yes, for SMEs up to about 20 developers without question. Gitea 1.22 (May 2026) covers issues, PRs, code reviews, container registry, packages, and actions. We run several fiduciary and law-firm clients on Gitea, all on Hetzner. Limit: with multi-repo pipelines and complex dependencies or very large monorepos (>5 GB), GitLab CE becomes more sensible.
Gitea or Forgejo – which to pick?
Functionally nearly identical. Gitea has a larger ecosystem, fast releases, and commercial options via Gitea Ltd. Forgejo is stricter OSS, governance sits with the Codeberg foundation. Pragmatic and no license religion: Gitea. Community-governance preference: Forgejo. Both are compatible with Gitea Actions and therefore with GitHub Actions.
Is Jenkins still worth it in 2026?
Rarely introduced new, often inherited. Whoever runs Jenkins for historical reasons typically has hundreds of Jenkinsfiles that cannot be migrated trivially. For greenfield it makes sense only with very specific plugin requirements or teams with deep Jenkins know-how. Standard 2026 recommendation: Gitea Actions, Woodpecker, or GitLab CI.
Do I need ArgoCD if I use Docker Compose?
No. ArgoCD is a Kubernetes solution. With Docker Compose, a simple script via SSH (rsync + docker compose pull + restart) or a webhook push from the pipeline is enough. ArgoCD pays off only from 3-5 apps in a Kubernetes cluster with frequent deployments – before that, GitOps is overhead without clear benefit.
Related topics
Sources
- Gitea Documentation – Actions and self-hosting · 2026-05
- Forgejo – Codeberg-driven Gitea fork · 2026-04
- GitLab Reference Architectures and CE/EE comparison · 2026-04
- GitHub Actions Documentation · 2026-05
- Woodpecker CI Documentation · 2026-05
- ArgoCD Documentation – CNCF graduated project · 2026-04