What is a good tool for Build Pipelines?

2019-03-13 09:28发布

问题:

I need a tool that will graphically represent our build pipeline. The below screenshots of ThoughtWorks Go and the Jenkins Pipeline plugin illustrate almost exactly what I want it to look like.

The problem is that we already use Jenkins for our builds and deployments, along with a few other custom tools for orchestration type duties. We don't want a pipeline tool to do the builds or deployments itself, it just needs to invoke Jenkins! I tried out Go, and the first thing it asked for is where my source code is and how to build it. I couldn't get Go to work in a way where Jenkins does the builds but Go creates the pipeline.

I've also experimented with the Jenkins Pipeline plugin, but it's very limiting. For one, it doesn't work with the Join plugin (so we can't have jobs run in parallel, which is a requirement). It also assumes that all of our tasks happen in Jenkins (Jenkins can't see outside of our test lab and into our production environment). I don't know if this is a viable option either.

So, does anyone have any recommendation for some pipeline tools that will do what I'm looking for?

回答1:

Edit (03/2018)

Since writing this question in 2012 and answering it in 2014, numerous tools have come online to support what I originally wanted. Jenkins now supports scripted pipelines natively and has an excellent UI (Blue Ocean) for rendering them. Those stumbling on this question should consider using these for their pipeline needs.

  • https://jenkins.io/doc/book/pipeline/
  • https://jenkins.io/projects/blueocean/

End edit


(Old answer)

It didn't exist when I asked the question, but Jenkins' Build Flow Plugin does exactly what I needed, and creates pipeline views very well.

https://wiki.jenkins-ci.org/display/JENKINS/Build+Flow+Plugin



回答2:

Jenkins/Hudson can certainly be used to achieve a real pipeline.



回答3:

You could use Go if you used a dummy material (an empty git repo, for example), and then used the API to trigger a pipeline and upload artifacts.

But, that's quite some effort, and you should probably only do that if you have a very good reason otherwise to use Go.



回答4:

You can try with GoCD pipeline. It has very nice features for continuous delivery and has nice dashboard also which shows real time flow and status. Give a try.