> Drone.io does not let developers configure two different projects against the same repository. Instead, one must fork that repository into a new one and use that to create a new Drone.io project.
https://www.slant.co/topics/2637/viewpoints/6/~best-self-hos...
Is that true? If so, that's pretty limiting.
As a person who earns probably half his living propping up horrible Jenkins installs, I highly recommend that nobody ever use it. But if you're going to work in corporate-world, you probably will have to use it, so you might as well get comfortable with it.
Also, people who are not used to the whole test driven development culture will have an easier time adapting if infrastructure doesn’t constantly break.
Jenkins is fine, if you commit to maintaining it, but thats a non trivial task.
THe joy and pain of the gitlab runner is that the job is tied directly to the git repo its attached to. This means that unlike jenkins, the setup is versioned, meaning disaster recovery is much more simple (spin up new runner, attach to project. Done.)
You do then sacrifice multi-project pipelines, but even in very large companies, I've only missed that feature once. It also in no way makes up for having to look after 60+ jenkins masters. (dont ask)
Yes, you gitlab gives you less control over environment, but I would put forward that this is only an advantage when running on windows.
https://docs.gitlab.com/ee/ci/multi_project_pipelines.html
https://docs.gitlab.com/ee/ci/runners/#shared-specific-and-g...
We are focusing on improving the new user experience here, so OP if you decide to try out GitLab I'd love to hear what works well and what doesn't.
I wasn't aware of multi-pipeline, so if I bump into that problem again, I'll give it a go
I self-host GitLab on Linode with a single runner in the cloud (and sometimes use runners on my local machines to speed processes up).
With 15-ish hours of configuration I have my GitLab hosting my SCM, my CI/CD, all of my static HTML sites, my artifact storage, my Docker registry, and even my documentation (I've almost switched 100% over to using their Web IDE to edit markdown).
I've been running this way for over a year and it's incredibly easy to keep maintained. GitLab's upgrade cycles are some of the smoothest around and are always packed with useful features. Overall I've been self-hosting GitLab for about 7 years - it's one of the best software products I've ever used.
Although I love to shill for them - I have no affiliation with GitLab outside of being an enthusiastic user.
At $work-1 I had been managing ~800 github repos with circleCI integrations. I was reluctant to stay on gitlab, especially with the hilarious down times in 2018. Two things kept me on there:
1) the runners
2) the ease of organising repos into projects
Now that the SRE team are up to scratch, I don't think I'd go back to github.
This directory (https://github.com/peterwwillis/devops-tools/blob/master/os/...) has basically everything you need to get the manager up and running as a container. (though I think I still need to add Docker to the master container, so you can use the host's Docker daemon to run arbitrary build agent containers on the fly)
From there you can play with the JCasC configuration to do things like add agents, configure the security realm, seed jobs at start-up, etc. Documentation is pretty sparse, but you can at least log in to the web UI and start playing around.
Outside of a single build node, I highly, highly recommend not using Jenkins. It's just such an unnecessarily complicated beast to manage with modern best practices, you might as well just cobble together your own system, or use a real modern distributed build system. It will take you just as long as going through all the endless bullshit options of trying to force Jenkins to do what you want, but you'll actually have something simple and useful in the end that works (if you choose to).
So much this. I've worked with Jenkins for most of my professional career. Its much better today than what it used to be, but compared to the CI toolings that are now available, using it today makes no sense at all (with a few exceptions, especially when it comes to maven build pipelines).
We use Jenkins now and build for PCs, consoles, and mobile. Almost all of our builds must be on Windows. Some builds require GPUs. Builds require things like specific versions of Unity, Unreal, or a console SDK. Many builds result in build artifacts in the multiple gigabytes which we then want to efficiently copy to e.g. a QA person’s console dev kit on our local network.
For all these reasons we’ve setup our own Jenkins deployment onsite at our office on bare metal. But I’m curious if any of the newer services or technologies might be useful for us.
We're a small startup building infrastructure for developers. We do address problems like what you describe: enforcement of the exact library version requirements for each codebase, reduction of artifact egress costs, integration into the Jenkins workflow as well as into IDE for devs and QA, and more.
We've been looking for game devs who'd be interested in what we're doing. Please reach out if you're interested.
I recently switched to Gitea from GitLab for my homelab. I think Jenkins + Gitea will combine well. I’m looking forward to trying this out. :)