Show HN: UI improvements for Jenkins
github.com
github.com
There's a huge amount wrong with Jenkins. My major gripe is that the world today has moved very much to "convention over configuration", also known as "usability". But Jenkins is firmly stuck behind. It's not wrong to say that nothing works out of the box, and you have to configure every little thing. CircleCI customers have told me they've literally spent 2 days configuring a jenkins box to even get it working, and are glad to be rid of it.
One example of jenkins' backwardness is a post from the Jenkins lead last week: https://news.ycombinator.com/item?id=6434194. Actual quote: "The literate plugin adds an Action to all Free-style projects that allows exporting these XML configuration snippets in a .zip file for unpacking into your project's source control."
I don't mean to hate on this, just jenkins. This design is a real improvement, one that Jenkins has been unable to do in the entire 10 years it's been in existence.
[disclaimer: obviously I have a massive massive bias against jenkins, as part of CircleCIs mission is vanquish it and its awful usability]
However, xml configuration is really a weak argument. It is very rare that anyone needs to touch the XML files. In fact, when someone touches those files is normally due to either a very extreme case or more commonly lack of interest in learning how the admin UI works. Jenkins lets you manage absolutely everything from the UI, from the very beginning, which is pretty convention-over-configurationish. Also Jenkins' changes control system lets you track and diff every change very quickly.
So, I step back on saying Jenkins lets you track main changes history. That has to be done manually I guess.
Thanks, this will help. :)
Here is the list of different tools, that can be used to automate Jenkins: https://gist.github.com/lechat/6666099
If this is even possible, the admin UI is not usable enough. "Man, I wouldn't have to use this ridiculous XML configuration system, if only I had the patience to slog through this UI. Alas..."
Taking two days though? Fire the engineer(s) behind the initiative. (I assume this is a one-sided sales pitch though.)
You guys have clearly hired a baller good UX/UI person and have an amazing roster of clients. Wish you all the success in the world!
That's without installing the databases, queues, etc, that you need. In all likelyhood, you wont have this in chef (your production box doesn't run postgres or redis or rabbit), so you're going from scratch. All it takes is one pesky configuration thing you can't figure out to have it take your entire day.
And heaven forbid if you haven't got a few years of linux admining under your belt already, in which case you can write off the rest of the week.
In general trying to automate things, brings all the workflow problems out to forefront to be fixed. It makes thinking clearer.
In particular, I have found Bitnami's Jenkins stack to be helpful for quickly spinning up a prototype and focusing on Jenkins rather than than installing+configuring databases and other stuff. I think it took me about an hour to be up and running with Bitnami's Jenkins VM, including download and provisioning time. It then took me quite a bit longer to coax Jenkins into building my stuff correctly.
Installing and configuring databases and other subsystems may eventually be necessary depending on scale. For my prototyping and learning needs, I've greatly benefited by working with self-contained VMs like Bitnami's. It's an option to consider, at least.
That has nothing to do with CI. CI is a workflow, not an implementation.
We have actually spent a lot of time trying to reduce the pain and suffering from CI. Of course, you can't please everybody: trying to do that gets you Jenkins. Rather, we try to make a wonderful experience for web apps running on Linux.
Some examples of this: scaling your CI to run more than one build at the same time is tough on Jenkins, trivial on Circle. Same with splitting long builds over multiple machines. Doing either of these on jenkins is a massive pain, and most of our converts from jenkins come over at that point in trying to scale it.
Another example is that many projects will just work out of the box, with no configuration: Ruby, node and python projects in particular (also Go, scala and clojure and a subset of Java projects). But when you do need to configure, we allow you configure a very large amount. How does that differ from jenkins? Well, we try to make that configuration as simple as possible, while still providing you with as much power as you need. See some detail in https://circleci.com/docs/configuration
Lastly, in terms of preventing suffering, we have some really cool features around debugging, such as being able to SSH into our build VMs, and fantastic customer service, manned by engineers (my day is Monday, feel free to say hi: sayhi [at] circleci.com).
1. Supported non-GitHub hosted repos 2. Supported more languages (Objective-C, C++, etc) 3. Supported SVN
I consider it like Heroku vs Amazon. You can do anything with Amazon (like on Jenkins), but with Heroku it just works (like on Circle).
Most importantly, when you sign up, there's a great flow. You give us oauth permission, and pick a repo (we have a list because Github) and then we can have you running tests in seconds. We automatically fiddle with Github to make that work (you dont need to add post-commit hooks or ssh keys, it just works).
That is not true. In Jenkins you just check "concurrent builds" in your job configuration and that's all.
To be fair to both Circle and Jenkins, between Github, Heroku and/or <insert other virtual services here>, there are a lot of 'black boxes' that have to work in concert (for us, and probably for many others out here). As the pin that ties the deployment cycle together, CI tends to draw on a lot of hate (warranted or not) from engineers trying to get their code out of the door.
I find that I am happier when I can get my hands dirty and help myself when things go awry. Software is all fun and games until a black box is standing between you and deployment.
Why doesn't Hacker News just delete obvious spam? I mean really whats the difference from this post to "buy cheap here, watches discount outlet..." Its more coherent, but other than that ;) Or how about giving it another background color and label it clearly as advertisement in case op payed not to get spamfiltered.
Most of the time was spent not configuring it (I guess it took maybe a pair of hours or about so), but experimenting around and reading about features/use cases/examples to understand what I can do and what I can't.
Installing jenkins and adding a job that will work immediately is a matter of minutes and doesn't require you to touch any configuration file at all.
Definitely much quicker than figuring out the pricing and limitations of CircleCI.
Unless you already have experience setting up a JVM stack, it's going to take you many hours.
apt-get install jenkins
From there you open the web interface and click on 'New job'...How you'd spend 'many hours' on that is beyond me.
I have a strong feeling someone is trolling here.
Can you paste some of these 'cryptic error messages' that you were getting?
Then you have many platform specific packages or you can just download the war and run "java -jar jenkins.war".
I think you're unfair to Jenkins in a couple of ways:
1) It's not as hard to set up as you make out. If you want to see what it's really like for nothing to work out of the box then head to the pre-Jenkins (then Hudson) era when CruiseControl was king (and I mean no disrespect to CC, it was a groundbreaking project). I agree, though, that the overall UX leaves plenty to be desired, and indeed this is one way we compete with Jenkins.
2) The strength of Jenkins is support for a huge range of environments and tools, with contributions in the small from a massive user base. Part of the trade off for this flexibility is some extra complexity.
I gather CircleCI approaches this space from a different angle, by narrowing focus thus making a streamlined UX a lot easier. That's a fine approach, and I wish you great luck, but it's not a way to "vanquish" Jenkins because you won't be able to satisfy most of the Jenkins user base.
Our approach is somewhere in between, and the balance is our greatest challenge. We've spent a lot of effort focused on ease of setup, and even more on ease of ongoing maintenance (especially for large build farms). I don't expect we'll ever compete with Jenkins on pure flexibility, rather I think there is room for many competitors in this space. After all, everyone should be into CI!
Notus Bene: Mind you, after you need to do super complicated things & especially fuss with some varieties Windows auth, Jenkins gets complicated.
The screenshot implies that it's removed all the icons - are icons universally considered useless now? I know I'm a sample of one, but I've always found the console icon to get "console output", the big red button for "delete", etc to be useful and unobtrusive...
> The fonts are bigger. Way bigger. > More spacing in between list items. > Text inputs are friendlier, bigger
For people using jenkins on their phones? :S I'm using it on a 1080p monitor, and even then I sometimes use my browser's zoom feature to zoom out so that I can fit more information on screen...
I'm all for UI improvements, but this just seems like "replace things with bootstrap, because everything has to be like bootstrap now" :(
There's some context about icons here: http://jonoscript.wordpress.com/2012/04/26/gmail-designer-ar...
If they are universally acknowledgeable (a big red X, a red dot, a green dot) then yeah they make sense, otherwise they just lead to confusion about what they do. In this case I didn't think they were adding anything to the left hand marker so I removed them.
To add more feedback: - I love the new console output. - I think the font-size is better. - I like the more-roomy build history better. - I think you could replace the dated build-status and build-weather-report icons to something more modern and better-looking
The UI is now nicer, especially the black background output and larger inputs.
Thank you for your work
Jenkins moved the minimum acceptable level of automation, for the industry, up quite a lot farther than it used to be. Say what you will but remember its impact, and that the guy who made it is quite possibly reading this thread.
[1] - http://www.thoughtworks.com/products/go-continuous-delivery/...
* - I work for ThoughtWorks, but not associated with the Go team, and use Teamcity and Jenkins more than Go.
I don't really mind because I'll never put this on my boxes (I've never really minded that the jenkins UI is years behind design trends), but you may want to be aware of colorblindness when toting "UI improvements".
But their usability is completely out of date and their current user base doesn't let them evolve to where they would need to be. Especially integration with PaaS services like Heroku should just be there from the start, but has never been a focus for the Jenkins community which still seems to be very on-premise based with all of their infrastructure.
More and more developers seem to be jumping on hosted solutions now (e.g. https://www.codeship.io where I am one of the founders)
I'm pretty fond of Bamboo's default (only?) theme [1].
Although the focus on building Java software is undeniable, we build a bunch of C# projects on it just fine (with its built-in MSBuild and MSTest tasks).
Bamboo 5 brings "deployment projects" [2] which makes CI just that little bit easier.
I've also used Hudson (ages ago: prior to it being forked) and although it's not a fair comparison, Bamboo is miles ahead.
[1] https://www.atlassian.com/en/software/bamboo/overviewHero/im...
[2] https://confluence.atlassian.com/download/attachments/365658...
I'll look into this and see what I can get out of it.
Plus, TeamCity has 'Run Now' on every build-related page.