Hacker News new | past | comments | ask | show | jobs | submit login

Jenkins is not perfect by any means, but I can say it is much better than existing solutions (taking pros and cons after trying and using many of them). Sure, it doesn't have fancy UI or flying buttons, nor is it rust/PWA/react/whatever-rage-is-these-days, but it does its job - it works, is free, and has been very well-maintained for ages. Download a single file and run it. Want to extend it? There is a plugin for everything under the sun (but be careful, you can easily bloat it).

IMHO, I don't want bells and whistles from the CI tool. CI tools are dry; I see them as a car drive shaft - it must work properly, and I don't expect it to be pretty. If you need to showcase it, you are probably doing something wrong.

And one more thing: I expect Jenkins to be around and free in the next 10 years. I doubt that will be the case for "insert-your-favorite-ci-from-some-company".




I hear you, I want my CI to be boring and just work, and using something old and and a little cooky is fine but...

omg switching away from jenkins (in our case to gitlab CI) was a revalation. SO much easier to use. There were a ton of things we were avoiding doing in CI (or at all) that we started doing (easily) once we switched.

> it must work properly, and I don't expect it to be pretty

Too often it really _didn't_ work properly, or the gap between where we were and "working properly" was a mysterious foggy ocean with no clear path.

To be fair, we drove it pretty hard, we had some jobs that ran thousands of tests on big clusters of nodes to validate and deploy huge ETL pipelines, but man it was nice to have that work smoothly with a nice UI that made sense with super-well-documented pipline commands. It did _basically_ work with jenkins, but the experience of troubleshooting problems and adding new features was a constant pain point that really dragged out a lot of work.


What did you switch to?


He wrote GitLab CI


[In the comment above, they] wrote Gitlab CI.

You make it sound as if they are Gitlab CI's author.


Jenkins, like many CI tools, is fine when you are maintaining 1-5 builds. Sure, your artisanal bash script pasted into the shell run of the Jenkins gui is stable and it just works.

When you go beyond that is when everything falls apart. And by fall apart I mean your org starts to grow to a technical ci debt by a thousand cuts until its taking some teams hours to build and ship their code or debug a spaghetti string of code strung together across undocumented boundaries.

Have you used other solutions at all? I used Jenkins for years and a lot of things that that came after that, from industry standards like GitHub Actions and Gitlab CI to more bleeding edge stuff like Earthly and Dagger. Jenkins is the worst of all of them, even if it may do a couple of things “better” than the others


+1. Jenkins is only simple as long as your problem domain is simple.

Once you need a tiny bit more, you are screwed. By that time you are already too heavily invested because initial barrier to entry was so low.


My 10 year old Jenkins build still runs. My CircleCI build.... less so...


I bet companies have years old zombie pipelines running without anyone's knowledge because Jenkins lacks discoverability.


> There is a plugin for everything under the sun

Yeah, that's the biggest problem. Almost every thing you need for a CI system comes in the format of a plugin, because Jenkins core is too simple. You can't always say no to your developers' plugin requests, because many of them are actually very reasonable.

Now you install one simple plugin, and it comes with 10 dependency plugins, and that's when your nightmare begins:

- out of these 10 plugins, 4 were owned by some random dudes on the internet and hasn't been updated in 3 years.

- 2 are not compatible with your jenkins core version.

- If you update Jenkins core, 3 other deprecated plugins will stop working.

> IMHO, I don't want bells and whistles from the CI tool.

I can see from the architecture design perspective, Jenkins is simple and boring -- it's a monolithic java app and data is just text files. But I would argue that, its UI is much more complicated and confusing than anything else. You have to install a bunch of plugins to integrate with code repo (github, gitlab, bitbucket...), compute systems (vm, cloud, kubernetes...), you have no choice but install a bunch of plugins, and they changes buttons, menus... I had worked for 3 different companies that used Jenkins, and they felt like 3 completely different websites.

To define a pipeline in Jenkins, your choices are either clickops, or the Groovy big gun. There's nothing in between. I don't have much complain about Groovy itself as a programming language, but if you ask your creative developers to use a programming language to define their CI pipeline, you are gonna see 20 different implementations to detect current git branch name. The biggest Jenkinsfile I have seen has 2000+ lines of business logic. Newer CI products like GitLab CI only allows you to define the pipeline in a yaml file, with a list of very limited directives. That's much more conservative. If needed, one can still run a shell step to capture some weird logic in a script, but that inconvenience is a good enough deterrent.


You can use jcasc (Jenkins configuration as code) with regular shell jobs, or Jenkins Job Builder, to name two alternatives "in between".


I am not sure if managing groovy/xml job definitions in a giant yaml file (where all your Jenkins core/plugin configuration live) is easier than Jenkinsfile in repositories.

Jenkins Job Builder can't configure plugins.

There are ways to do job templating, but last time I checked, they were either not powerful enough, or too complex that I would rather writing groovy.


Agreed - I'd much rather spend more time working around Jenkins' peculiarities once than constantly deal with change for the sake of change because some PM wants more "engagement" to justify their job and promotion.

Tools need to be boring and get out of my way - something "modern" tooling forgets since everyone's paycheck depends on forgetting that.


I don’t think the issue with Jenkins is the lack of bells and whistles. The UI it has is unintuitive - I always feel like I can’t find what I’m looking for anytime I am in there.

It has two different UIs (last I checked) which is kind of insane, blue ocean still sucked the last time I used it and the product can’t 100% move away from the old UI (again, last I checked…)

On top of all that it’s not really fun to administer (first-hand experience) where almost every environment will result in plugin hell. I wouldn’t describe the setup process “download a single file and run it” as I look at the documentation, either.

Jenkins can’t give you the “one less tool” advantage that you get with GitHub or Gitlab, either.

Don’t forget that Jenkins’ competition includes free options with mostly high longevity.


And Blue Ocean’s effectively deprecated!


TIL. https://plugins.jenkins.io/blueocean/

   Blue Ocean status

   Blue Ocean will not receive further functionality updates. 
   Blue Ocean will continue to provide easy-to-use Pipeline visualization, but it will not be enhanced further. It will only receive selective updates for significant security issues or functional defects.


Wow. I mean, you're joking right? No? Wow.

That furthers my belief that Jenkins is the quintissential mediocre open source project that only hangs on to life because it's free (and maybe just becasuse it's free as in beer).

If I ran a department and I was given an unlmited CI budget forever I can't see what would compel me to use Jenkins.


The car drive shaft analogy is also apt because a drive shaft is a precision part that _someone_ has to think about very passionately, in order for others to not have to think about at all.

~13m30s: https://youtu.be/xyeeksFRnn4?si=924f0OZYDZk7otFL


> I see them as a car drive shaft ...

That's a good metaphor, and it's significant that there are large innovations happening in car drive shafts as with CI tools:

https://electrek.co/2023/11/29/hyundai-kia-introduce-new-uni...


Basically a dumb pipe in the “dumb pipe, smart endpoint“ dynamic.

Drive shaft is a good analogy though because its not simply moving data (unless we’re getting really abstract).


It's infrastructure. It should be boring, unchanging, and without surprises. It should be so reliable that we take it for granted.


The thing that made me want to use hosted CI was realizing how much time I ended up spending on Jenkins infra and debugging. Upgrades to master or to plugins and then testing them - bleh!

GitHub's being slow? Well that's a GitHub problem. Look, it's been ack'd and they're working on it! Job done.


Jenkins will be around for as long as developers still code. I've always found that any significantly large software engineering office will have Jenkins running somewhere, happily on a local dev laptop/desktop or in a VM somewhere. I think it is being rarely used en-mass still which is a shame since it is free, open-source and easy to self-host.

-

I'm not sure why people are logging into Jenkins and complaining about the UI all the time; that just sounds like your pipeline needs better notifications and people are relying on Jenkins to look at build logs? If you want something prettier to look at just build out a dashboard on Grafana or similar, and centralise your build logs with artifacts and link to them with build failure notifications.


I like to borrow Churchill's quote about democracy and reframe it around Jenkins.

Jenkins is the worst CI/CD tool, except for all the others.


Jenkins BlueOcean is one of the best "fancy UIs"


Thanks! My team and I made that and it was a lot of fun :)


Thanks for that, we use it all day every day!

It's too bad it's been declared "end of life", without any replacement in sight, and nobody these days is fixing some bugs that are really bothering us sometimes...


I really wished we finished it and made it the default UI. Jenkins is very extensible, so there are a LOT of extension points. We certainly didn't have the right approach to the API and devex for creating react plugin extension points either.


We almost made it... Still bums me out. Good to see you're still lurking broseph ;-)


We almost did! It was a huge boulder to move. Nice to see you around too :) lets grab a beer soon


Thank you for building it - it's my go-to jenkins UI. Makes jenkins tolerable :)


Using that everyday all day. Thank you!!


No, thank you! It's fresh, it's infomation dense, it's fast, it works!




Consider applying for YC's Summer 2025 batch! Applications are open till May 13

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

Search: