Live data from Hacker News

Can we use Jenkins for that?

engineering.simondata.com

41–50 of 50 posts

Re: Can we use Jenkins for that?

#41

Earlier quoted context omitted.

I agree with all this. Unfortunately I haven't found anything less bad :(

Jenkins + the Job DSL Plugin [0] has been amazing. We don't do any configuration in the web interface, instead everything lives in a groovy file on BitBucket. Every time we push a change Jenkins grabs it and auto runs the groovy file, regenerating all of our jobs. We have it set up so that a job is created for every branch in our repo, so much easier to work with. All a developer has to do to get his branch building…

You only need recognition-memory to use Web and GUI interfaces, whereas you need recall-memory to use command line interfaces and scripts, which is far more difficult. That's why clicking in a Web GUI or graphical XML-generator replaced scripting. You need a lot of previous information in your memory for recall to write stuff like the following example taken from your linked page:

  def project = 'quidryan/aws-sdk-test'
  def branchApi = new URL("https://api.github.com/repos/${project}/branches")
  def branches = new groovy.json.JsonSlurper().parse(branchApi.newReader())
  branches.each {
    def branchName = it.name
    job {
        name "${project}-${branchName}".replaceAll('/','-')
        scm {
            git("git://github.com/${project}.git", branchName)
        }
        steps {
            maven("test -Dproject.name=${project}/${branchName}")
        }
    }
  }
The vocabulary and grammar in that script is quite complicated and people would rather be presented with the options for clicking on a web page. But perhaps you're promoting a particular software product?

Re: Can we use Jenkins for that?

#42

At my previous employer I used Jenkins with build matrices quite heavily. Lately I've been using TeamCity and we're paying for the enterprise variant. TeamCity has its share of flaws but FWIW it seems to handle more complex workflow tasks better. In particular I like the flexibility around snapshot versus artifact dependencies, the APIs are decent (and you can do a lot of troublingly clever things if you invoke the A…

We've been using TeamCity for many years, and recently evaluated Jenkins as a possible replacement. Stability was a huge concern and decided to stick with TC. I agree, TC does have its share of flaws, but it's way ahead of Jenkins in many areas.

Re: Can we use Jenkins for that?

#43
post #41

Earlier quoted context omitted.

Jenkins + the Job DSL Plugin [0] has been amazing. We don't do any configuration in the web interface, instead everything lives in a groovy file on BitBucket. Every time we push a change Jenkins grabs it and auto runs the groovy file, regenerating all of our jobs. We have it set up so that a job is created for every branch in our repo, so much easier to work with. All a developer has to do to get his branch building…

You only need recognition-memory to use Web and GUI interfaces, whereas you need recall-memory to use command line interfaces and scripts, which is far more difficult. That's why clicking in a Web GUI or graphical XML-generator replaced scripting. You need a lot of previous information in your memory for recall to write stuff like the following example taken from your linked page: def project = 'quidryan/aws-sdk-test…

GUIs are more discoverable than command lines. Text files are easier to save in version control. So it's common to have a system where the GUI hooks new users, but they eventually have enough configuration in it that the GUI is no longer a reasonable way to control it all, and they need a way to extract the information in a reasonable format. Hence the reason several Jenkins plugins have evolved to do that.

Re: Can we use Jenkins for that?

#44
post #26

This article feels like it's from years ago. Using Jenkins today is an anachronism - poor UI, poor configuration, poor scalability, poor distribution. My current employer has poured so much well intentioned effort into Jenkins' black hole. Never again.

What are you going to use instead?

I've been meaning to take a closer look at http://concourse.ci/ at some point. It looks like it could be a viable alternative to Jenkins for many things.

Re: Can we use Jenkins for that?

#45
post #28

Earlier quoted context omitted.

Migrating to Travis and a SWF-based solution, all driven by versioned configuration and code.

From a quick look Travis doesn't seem to be open-source or even usable on-premise.

Open source is not a requirement. Neither is the ability to run locally, which is something we'd like to very much move away from.

Re: Can we use Jenkins for that?

#46
post #4

Eh, I'm sure there are many things Jenkins is OK at, but it's not that great of build server. The Multi-Configuration Project abstraction (IE build matrices) is clunky and the plugin ecosystem doesn't respect it well (eg. the Gerrit plugin is extremely popular but very brittle here). So you wind up with O(n) projects anyway and still needing to copy and paste configuration among them. Also Jenkins configuration itsel…

     the Gerrit plugin 
As far as I'm aware, none of the alternatives people have recommended actually have Gerrit plugins at all, which is a strong point for Jenkins.

There are projects out there with workflows where people submit to Github so the CI can run, then it gets pulled into Gerrit for code review on a website with no visibility into the result of that CI.

I'd love to move all code review to Gerrit but I'd need to see something disrupt this space first.

Re: Can we use Jenkins for that?

#47
post #4

Eh, I'm sure there are many things Jenkins is OK at, but it's not that great of build server. The Multi-Configuration Project abstraction (IE build matrices) is clunky and the plugin ecosystem doesn't respect it well (eg. the Gerrit plugin is extremely popular but very brittle here). So you wind up with O(n) projects anyway and still needing to copy and paste configuration among them. Also Jenkins configuration itsel…

the Gerrit plugin As far as I'm aware, none of the alternatives people have recommended actually have Gerrit plugins at all, which is a strong point for Jenkins. There are projects out there with workflows where people submit to Github so the CI can run, then it gets pulled into Gerrit for code review on a website with no visibility into the result of that CI. I'd love to move all code review to Gerrit but I'd need t…

Except Gerrit's not really all that great either! It just looks good when everything else has been dumbed down to parity with GitHub.

This start up seems like they are trying to sort of package and iterate on the value and power of Gerrit: https://www.gitcolony.com

Re: Can we use Jenkins for that?

#48
post #7

Does anyone consider Jenkins as a replacement to CRON?

We have tried that as it is easy to learn the status of the job and view logs. But had problems while running many jobs simultaneously. Some jobs will hang. So now we are using Cron + Monitoring External Jobs Plugin in Jenkins(https://wiki.jenkins-ci.org/display/JENKINS/Monitoring+exter...). This gives the performance of Cron and the above mentioned advantages of Jenkins.

Re: Can we use Jenkins for that?

#49

Earlier quoted context omitted.

I agree with all this. Unfortunately I haven't found anything less bad :(

Jenkins + the Job DSL Plugin [0] has been amazing. We don't do any configuration in the web interface, instead everything lives in a groovy file on BitBucket. Every time we push a change Jenkins grabs it and auto runs the groovy file, regenerating all of our jobs. We have it set up so that a job is created for every branch in our repo, so much easier to work with. All a developer has to do to get his branch building…

I also used JobDSL, and thought it worked pretty well. I don't think my teammates agreed, they seemed to just want to change things in the UI and this was just something getting in the way of their work. Some were willing to learn it, others weren't interested.

I think the new Jenkinsfile approach looks very promising: http://jenkins-ci.org/content/pipeline-code-multibranch-work...

Re: Can we use Jenkins for that?

#50
post #47

Earlier quoted context omitted.

the Gerrit plugin As far as I'm aware, none of the alternatives people have recommended actually have Gerrit plugins at all, which is a strong point for Jenkins. There are projects out there with workflows where people submit to Github so the CI can run, then it gets pulled into Gerrit for code review on a website with no visibility into the result of that CI. I'd love to move all code review to Gerrit but I'd need t…

Except Gerrit's not really all that great either! It just looks good when everything else has been dumbed down to parity with GitHub. This start up seems like they are trying to sort of package and iterate on the value and power of Gerrit: https://www.gitcolony.com

I literally came across this just now:

https://github.com/google/git-appraise

Although it may well be a decent Gerrit alternative - it still talks about interfacing with Jenkins.

Post reply on HN