Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Best self-hosted CI solution?
8 points by shci on May 23, 2021 | hide | past | favorite | 19 comments
What is the best software for running a self-hosted CI system? What are you currently using?

At my company (100 engineers, 1000 CI pipelines) we use GoCD as of now, but that seems to be no longer maintained and is lacking some important features. Jenkins seems to be the go-to solution, has support for everything via plugins, but I have only heard bad things about it. Is that still true?

I'm looking for a self-hosted solution because we do a lot of custom magic with docker that requires root access on the builders and access to various services in our intranet.




You can self-host GitLab and GitLab CI. Those are nicely integrated and a smooth UI. Well supported and ongoing development and improvement.


That sounds interesting. We're currently using GitHub for hosting our repos (with a ton of integrations, so probably can't switch anytime soon). Is it possible to use GitLab CI with the repos being hosted on GitHub?


Github also support self hosted runners! We are using those for certain jobs at organization. Very convenient.

https://docs.github.com/en/actions/hosting-your-own-runners/...


This seems like a great solution, I will definitely investigate that. I'm a bit worried about feature completeness (Vault integration comes to mind). Does anyone have experience with using this on a large scale?


You could run into some limitations, since as far as I know there is only 1 self hosted runner configuration for a given organization. You can’t for example request a specific workflow run on a specific class of self-hosted runners or something like that.



I've used Jenkins. It's not bad, but not great either.

I've used Bamboo. It seems to be more stable and flexible.


I'm a huge fan of Drone CI. Loads of customization options, and a simple, powerful UI. Easy to self-host and scale as docker containers.

https://www.drone.io


I am running https://concourse-ci.org on a cheap VPC and I am very happy with it.


I had a brief look at Concourse. It looks promising but seems to be very focused on running things in containers.

That approach is great when starting out fresh, but with our 1000 existing pipelines (that mainly use Makefiles as entrypoints, which then use docker with custom tooling) it would be a pain to migrate.

Does anyone have experience running Concourse at scale? Does it also support running tasks "old-school" (without any containers)?


Not sure how your current builds look like, but I tend not having to deal with containers per se. All they force you to do is be explicit about the build‘s dependencies, which I think is a useful thing.

My approach for migrating existing builds to Concourse is to start with a stock image (alpine or ubuntu), and gradually add things that are missing (`fly execute` is a big help for that).

Once I have a successful build, I extract the prerequisites into a task image (but that really is an optimization).


That seems like a good approach when you have only a few pipelines. Unfortunately we have roughly 1000 pipelines/repos that all our our somewhat custom tooling that spawns up more docker containers with various volume mounts. For better or worse we're stuck with that for now, and we don't really have the capacity or desire to migrate all these projects to a completely new way of doing things.

So ideally the worker would just run commands on the worker host directly (no containers) and lets the containerization up to the executed jobs themselves. I'm not sure that's possible with Concourse (it looks like it does that for windows+darwin, but not on linux).


> run commands on the worker host directly

I‘d think that Concourse is not the best fit for this requirement.


GoCD had a release two months ago, why do you think it’s not maintained?


Maybe "not maintained" was a bit harsh. Until end of 2020 ThoughtWorks spent a lot of resources on developing new features. This has stopped now, so I'm a bit concerned that while GoCD seems to be actually maintained (there are some very recent bugfix commits in the repo), general development of new features might be slow/nonexistant in the future.

Here's the official announcement: https://groups.google.com/g/go-cd/c/EXwfvZZeLrM


I would recommend Github Enterprise


What advantages (in terms of CI setup) does that have over using GitHub.com?


Buildkite is pretty good.


Looks interesting! So if I'm reading that correctly, the server-side is hosted by them but then you have the workers on your own infrastructure? That's seems like the best of both worlds (if it works ;).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: