lambdacd icon indicating copy to clipboard operation
lambdacd copied to clipboard

Default pipelines dashboard (Feature request)

Open alehatsman opened this issue 7 years ago • 6 comments

What will be really nice is to have some kind of default dashboard, where you can see stats of all pipelines. Because for example for me, the fact that u need to define your own UI for "home page" and the way configuration of pipelines is done now was a repulsive factor. And searching through issues i see that people often ask about that.

I don't think that is it very complex from UI side. The question is how to configure pipelines. That would require a kind of abstraction on top of ambdacd/assemble-pipeline and runners/start-one-run-after-another.

I think that is quite important and that could make a project more user-friendly and beginner friendly.

And I also think that it should be at the core of the project because as a new user I want to take a solution and immediately start using it.

And it very important to have it in the core of the project. Because people don't really want to spend time searching for third-party libraries, which are often incompatible etc. Like it was with me when I took the last version of lambdacd, then added lambdacd-ui, which was out of date and I was in one step of leaving it and switching to Jenkins :)

alehatsman avatar Jun 04 '18 09:06 alehatsman

Thanks for the feedback! We definitely don't want to drive people back to Jenkins! :)

To your immediate question, yes, a dashboard and generally improved multi-pipeline support would be a very good addition.

To your meta-question, where should such a solution live and how do we make LambdaCD more approachable, that's a more tricky question that probably demands a separate thread. I split that out into #191.

flosell avatar Jun 06 '18 01:06 flosell

Looks like I've stumbled upon the same problem. I want lambdacd to serve several separate projects, so I need to run several pipelines side by side. Apart from the UI point of view (I could probably live with creating an ad-hoc list of links) I need some facility in core that would do "wait for git on these repos and start an appropriate pipeline".

I could probably make an attempt on writing and contributing some code for it, but I need some guidance to how to approach it, I'm very new to Clojure :-) First question is, how do I start several waiting processes? Do I use core.async for that?

isagalaev avatar Oct 05 '18 20:10 isagalaev

Hi @isagalaev, sorry for the late response!

There are two ways you could tackle this without changing the core. Depending on what you are trying to do, they might or might not work for you:

Same pipeline for different repo You could run a single pipeline that has multiple wait-for-git steps waiting in parallel. Whenever there's a commit in one, the rest of the pipeline gets executed and receives information such as changed-remote in args that allows you to find out what to build. Obviously only works if all your repos can be built and deployed in more or less the same way

Cookie-cutter-pipeline This example shows how to create multiple pipelines from the same general pattern inside the same LambdaCD project. This can be extended to multiple, completely different pipeline templates with minor changes

Let me know if this helps or if I misunderstood the question.

flosell avatar Oct 23 '18 08:10 flosell

Hi @isagalaev, sorry for the late response!

Likewise :-)

Thanks for the answers! I did in fact find the cookie-cutter example and could run several pipelines, and now I understand how it all works in more details. Unfortunately my project based on lambda.cd got de-prioritized (read: cancelled), so I probably won't be doing anything more beyond the prototype I made.

isagalaev avatar Nov 16 '18 07:11 isagalaev

Thanks for the feedback @isagalaev! Do you think there's something in your prototype that's helpful for the rest of the community? If so, is there a chance it can be open-sourced so others can learn from it?

flosell avatar Nov 18 '18 11:11 flosell

No, not really. It was just a quick prototype which, if accepted, might have yielded some lambdacd-specific plugins, but that wasn't meant to happen, apparently.

isagalaev avatar Nov 21 '18 18:11 isagalaev