3 ms·
I've built several Jenkins-based CI systems at work. Once you know how to not shoot yourself in the foot, it's really easy. I have 2 cardinal rules: 1) Don't
by favorited 9y ago
I've built several Jenkins-based CI systems at work. Once you know how to not shoot yourself in the foot, it's really easy. I have 2 cardinal rules:
1) Don't run any jobs on the master box – master is just a web server + master Jenkins app server
2) All build scripts should be part of the project, not configured CI
#2 is the more important. Jenkins jobs at my work used to have tons of configuration and plugins, because the person setting up the CI would see (for example) an "Xcode plugin," and (naturally) decide to install and use that. That was a nightmare because of transient dependencies (and conflicts), and now configurations like "project file name" were spread across multiple jobs. Now we just have similar build scripts in each project, which has the additional benefit of letting developers run builds and tests locally the same as they run in CI. Jobs are tiny, and all the CI configuration has to do with CI things, like schedule, branch, archiving, notifications, etc.
- peteretep 9y agoAt that point, is there much point in using Jenkins? Aren't there much lighter weight alternatives?
- favorited 9y agoIf you know a good one, definitely let me know. Generally the only constraints are open source with a permissive license & on-premises installs. One benefit is it can already integrate with whatever else is out there. When we switched from GitLab to GitHub Enterprise at work, our CI environment just needed to point somewhere else.
- sytse 9y agoWhy did you switch from GitLab? What should we improve?
- favorited 9y agoNothing! GitLab was great. But we had several GitHub, GitLab, & Stash instances, and there was a push to consolidate onto one platform. Not sure why we consolidated onto GitHub over others, but that was above my pay grade :)
- Pharaoh2 9y agoNot a reasonable replacement as maintaining your own mac servers is non-trivial and all the major cloud providers don't have mac as hardware options.
- favorited 9y agoExcept the parent comment wasn't asking about a cloud-based replacement. They specifically mentioned setting up a CI environment yourself.
- ajeet_dhaliwal 9y agoThe problem I've seen is it makes sense to the person who set it up but when they leave it's not as easy or obvious for the person who comes in later to maintain it. If you have left behind detailed docs that may mitigate the issue. Also in some cases there is good reason to do it yourself but in other cases some people have a strong NIH syndrome and the value in the end to the company is not necessarily higher with a custom setup. In the end if it ends up costing more to maintain the system it's a net loss.