Doing CI/CD with Gitea

New features provides excelent value

dev

Created on 22 January 2024.

Feeling bad that I neglected one of my servers for some time, I put aside a couple of hours to make some updates.

One of them was for my own private git. For that I am using Gitea. I liked the experience and the features provided.

Back then, when I configured it, I was missing something: The CI/CD part. On all my projects, I would like to have at least a minimum CI pipeline with some basic checks. Even if it's a solo-project.

At that point in time, the options considered were Woodpecker and Drone. I did my fair share of research but didn't pull the trigger on any option.

I have to mention that I don't consider either one of them to be a bad tool. Not at all. Having no practical experience with them, I can't fully form an opinion on them.

Because my life is a bit chaotic right now, I needed to double-check that I had the latest version of Gitea up and running. I did.

This version check, however, led me to learn about Gitea Actions. Which is a pretty new addition to the product, so it was a lucky find.

Basically it offers a Runner which can be deployed either directly on a VM or through Docker or Kubernetes. This enables you to create your own pipelines and run them.

It's quite a flexible tool as well. For example, you can deploy the runner in a docker container and then have the jobs run inside this container. But you can also have other containers be dynamically created specifically for the jobs, providing even more isolation.

It works well, you can add it to your existing Gitea docker if you self-host, and it is open-sourced.

Bonus: Gitea Actions support GitHub Actions syntax and mirrors many of the packages. So most if not all the experience you get by testing this, you will also benefit on GitHub or vice versa. It's a nice little win for those looking to continuously expand their knowledge and understanding of how things work.


If you enjoyed this article and think others should read it, please share it on Twitter or share on Linkedin.