Self-hosted Forgejo Actions on a Codeberg repository. It was relatively easy to setup and I don't even need a VPS through my dynamic IP 5G connexion. See also: https://codeberg.org/trougnouf/cfait
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
-
No low-effort posts. This is subjective and will largely be determined by the community member reports.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
GitHub Actions mostly.
The rest is usually plumbing and code to support it. The actions are just the automated execution environment.
Git lab CI is my goto for git repo based things (unit tests, integration tests, etc). Fleet through Rancher for real deployments (manages and maintains state because kubernetes). Tekton is my in between catchall.
I'm currently looking into Concourse.
It does have steeper-than-average learning curve, but I really like that it has well-defined fundamentals (resources, jobs, tasks) and isolation with OCI containers. Before I adopt it fully, I want it to run my nix flake dev shell.
We use Azure Devops at my current gig. It works pretty well for our setup. I've used GHA before; it definitely didn't "spark joy". I ~~wasted~~spent way too many hours in the "update yaml file, commit, push, wait 5 minutes for it to fail again" ~~spiral of despair~~feedback loop.
Nice thing with ADO is its release dashboard -- you get a really nice summary of recent builds and where they went:
$project - dev - test - prod
I didn't see anything similar for GHA.
A lot of that pain can be reduced by writing and running your code locally before pushing it to a CI environment. Generally with our automation we write a CLI, And GitHub actions is just an execution environment that calls the CLI.
And if what you're trying to do must execute inside an action. You can run workflows locally with docker!
Please don’t take me as a GH shill because I’m not. I’m not sure we read the same email given your projects. Actions on GH runners are dropping in cost and there’s a new fractional cost for self-hosted. For the average user, especially those on GH runners, costs are going down. Looking at your repo, you haven’t run anything since July. Your workflow files use GH runners. Nothing in your history suggests you’re leaving the free tier so I don’t get this FUD at all. General Microsoft hate? Fuck yeah. Shitty GH service? Fuck yeah. Plenty of reasons to dunk but this was not one of them. M
Forgejo and self hosted action workers.
I do devops at work and my experience is that really any CI/CD system works, they all have enough features to do what you want. They all fundamentally just run scripts on boxes. Therefore, I say pick the easiest one, likely the one that is built into whatever Git system you are using.
Try to keep your pipelines simple-ish when you can, they almost never need to be that complicated. 95% of the time it's just running a command or two. If a pipeline needs to do something complex, I'd recommend writing that script into the Git repo and calling it, rather than having a CI job that is 100 lines long.
IMO, Gitlab CI/CD blows Github out of the water. They're not even in the same league. I recommend Gitlab + self hosted runners (it's so easy).
I've been using Gitlab for many years and host my own runners as of the past 6 months because I nearly exhausted my monthly free tier runner minutes one month.
Edit: I forgot this was self-hosted community, disregard.
How does organization work out?
We have dozens of workflows for our monorepo CI/CD stuff. GitHub organization with the flat structure is incredibly annoying.
GitLab is a single file?? (Or am I misinformed? )How does that work out?
I had someone swear to me that Github templating was better, but I've only worked with Gitlabs templates. Why do you like Gitlab over Github?
Gitlab CI feels native. Github offers similar functionality but it feels/looks like an afterthought. I think the Gitlab .yaml structure is more intuitive. Also, how the Gitlab UI visually represents a pipeline is mcuh better, IMO. Self hosting runners on my server (Ubuntu) is so easy and free. I hadn't tried it with Github but it sounds like it still costs money?!
Note: I don't work for Gitlab
I second GitLab CI/CD - it's a CI/CD system that just makes sense to me. That doesn't mean it doesn't have its complexities depending on your needs, but I've overall enjoyed my time working with it.
Forgejo has their own runner: https://forgejo.org/docs/latest/admin/actions/runner-installation/
I've used it on my personal machine, was very easy to setup and mostly compatible with GitHub actions out-of-the-box (including things like actions/checkout@v4).
Forgejo runners are great! I found some simple actions to do docker in docker and now build all my images with them!
Gitlab CI/CD pipelines are my go-to tool. At work we self host an instance, for personal projects I use gitlab.com.
So many these days. Actions are probably one of the best, but there are still plenty of others out there.
- gitlab
- dagger
- concourseci
- tekton
- Spinnaker
- harness
- argo
- flux
- gocd
If I were to pick one, it would probably be dagger. Or really anything but Jenkins.
Gitea Actions, as well.
I'm using gitea which has CI compatible to GitHub actions with my own runner. It's pretty straightforward to set up and didn't give me any headaches yet. It's a very small instance just for my ownaybe dozen projects though.
This is what I was using till I switched to forgejo and never got around to setting up one of their runners.
Out of curiosity, how did you switch to Forgejo? I thought Gitea and Forgejo have diverged to the point where you can no longer just switch over without losing stuff.
@yaroto98 @Carol2852 Same here, switched from gitea to forgejo. I still was using the act runner for some time, later I replaced it with the forgejo-runner.
Works pretty smooth!
When you switched, did you lose all of your Gitea data? Or was that somehow importable?
@witten I have switched maybe a year ago or something like that. Didn't loose anything because I was running a compatible version at that time:
https://forgejo.org/docs/latest/admin/upgrade/from-gitea/
If you are running a recent version it's probably a bit more complicated.
I run their act binary on one of my servers. Can't remember much of the setup, so I can't be too bad. I did have to change the used images though, but I guess that comes with maintenance of you own runner anyway.
If it helps motivate you to give it a shot, I found gitea's runner very confusing to set up, but I felt like forgejo was better designed, pretty easy and well documented.
Magnetic needle. Steady hand.
I’m not entirely sure why all the hate : Jenkins can do the most things the must ways. And yes, it’s so much nicer defining a pipeline with a fully functional language than an assortment of yaml files
Actually that was my response when my company wanted to start using Gitlab ci. It only has one way of doing things so you can probably get a faster start if you had no ci, were a small company, and had simple builds. However we’re over 4,000 builds in many languages from 12 year old monoliths to modern micro services and containers….. and way too much godawful JavaScript. Do you want the quick and simple tool great for a small startup or the all powerful kitchen sink of tools?
Jenkins is good enough to be widely used enough to be hated enough to be downvoted.
The sign of a mature product IMO.
You could do worse than Jenkins
"It's the worst one, except for all the others"
Been using Jenkins since before it was called Jenkins. It's been in use at every corpo I've worked for. It can practically do anything. Especially coupled with Docker.
Hudson? Man, that's a blast from the past.
Watching this thread because CI/CD is something that I'd like to get into.
Are you a programmer?
Ditto
I self-host https://woodpecker-ci.org/ and I love it. It was easy to set up, and I never have to worry about CI/CD minutes.
fwiw, you can self host a GitHub actions runner
Don't they want to monetize those as well?
yes, according to this morning’s email
But you are charged for it.
Used to use travis or clicleci and they both worked really well. Theres some issues with travis being old/expensive and circle got in touble for a few security issues though. gitlab has some nice tools from my experience.
Im interested as well. Ive got a forgjo that I would love to hook into at some point.
Are you sure it was a price "increase"?
I got a similar email this morning but it was the exact opposite of what I expected upon closer examination:
https://docs.github.com/en/billing/reference/actions-runner-pricing