Hi all,
I’d like to spin up a lemmy instance with some changes I’d like to make this upcoming weekend, and I’d like to self host a ci/cd pipeline for it.
At work, we use Jenkins tied to Jira.
Our procedure is as follows:
- We feature branch, build/deploy to dev (manual), self/peer verify.
- Merge to master, build/deploy to dev (triggered by jira), QA tests
- Promote to stage (deploy artifact from previous build, triggered by Jira), QA tests
- Promote to prod, and pray we didn’t miss any edge cases lol
I’m not married to Jenkins and I’d be open to other options, if there’s something you’ve tried that you think is better, I’d love to hear it!
Would be nice to have auto triggers that are tied to kanban stories, but not necessary.
I use gitea and metroline. I’m pretty sure gitea has their own pipeline now, but I haven’t used it.
Please do add a tag to your post as stated on the sublemmy sidebar! Thank you. :)
I really like TeamCity from JetBrains. It seems to not be the most popular, but I think it’s leagues ahead of Jenkins. Though, unlike Jenkins, TeamCity is not open source. For an instance with up to 3 agents and a maximum of 100 build configurations its free.
The TC devs have been incrementally improving a refresh on its UI called Sakura, which is quite nice but can also be managed using config as code which uses xml.
If you’re already using GitHub or Gitlab you could look at their CI/CD tools within their platforms. I’m using GitHub actions with a self hosted runner and quite like the simplicity of it compared to building & managing a Jenkins instance.
@ultraHQ @selfhost I have used WoodpeckerCI with gitea and it works really well. The pipeline syntax is really easy to use as well. I wrote some posts on working through the options - https://omaramin.me/posts/questforcicd/
I currently use DroneCI, but I’ve thought about migrating to Gitea Actions since I also use Gitea. My use case is relatively simple, just deploying various docker containers like Jellyfin or Vikunja.
I’ll look in to Gitea! Do you know if it can be set up to track remotes in github (lemmy/ lemmyUi in my case)
You can have it occasionally pull as a mirror: