5 ms·
Ask HN: Best self-hosted CI solution?
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.
- giantg2 5y agoI've used Jenkins. It's not bad, but not great either. I've used Bamboo. It seems to be more stable and flexible.
- atsaloli 5y agoYou can self-host GitLab and GitLab CI. Those are nicely integrated and a smooth UI. Well supported and ongoing development and improvement.
- shci 5y agoThat 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?
- jrowley 5y agoGithub 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/about-self-hosted-runners https://docs.github.com/en/actions/hosting-your-own-runners/...
- shci 5y agoThis 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?
- jrowley 5y agoYou 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.
- john_cogs 5y agoYes, you can. Docs here: https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/github_integration.html https://docs.gitlab.com/ee/ci/ci_cd_for_external_repos/githu...
- knl 5y agoGoCD had a release two months ago, why do you think it’s not maintained?
- shci 5y agoMaybe "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 https://groups.google.com/g/go-cd/c/EXwfvZZeLrM
- ironfootnz 5y agoI would recommend Github Enterprise
- shci 5y agoWhat advantages (in terms of CI setup) does that have over using GitHub.com?
- suhlig 5y agoI am running https://concourse-ci.org https://concourse-ci.org on a cheap VPC and I am very happy with it.
- shci 5y agoI 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)?
- suhlig 5y agoNot 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).
- shci 5y agoThat 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).
- suhlig 5y ago
- aeroith 5y agoBuildkite is pretty good.
- shci 5y agoLooks 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 ;).
- thecodemonkey 5y agoI'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 https://www.drone.io