ccnet / CruiseControl.NET

CruiseControl.NET is an Automated Continuous Integration server, implemented using the .NET Framework. Downloads at sourceforge. The documentation can be found at:
https://ccnet.github.io/CruiseControl.NET
Other
406 stars 225 forks source link

Allow for Specifying a Custom Display Name per Project in CCTray #292

Open fhaag opened 4 years ago

fhaag commented 4 years ago

In my CCTray, I am currently observing various builds of four of our branches, namely our trunk and three release branches. CCTray can successfully connect to the build server (by means of .NET Remoting) and retrieve the status ... which is then shown in my table in rows starting like this:

Project Server Category ...
Core Public buildsrv:28002 [buildsrv]Public ...
Core Release buildsrv:28002 [buildsrv]Release ...
Core Debug buildsrv:28002 [buildsrv]Debug ...
Modules Public buildsrv:28008 [buildsrv]Public ...
Modules Release buildsrv:28008 [buildsrv]Release ...
Modules Debug buildsrv:28008 [buildsrv]Debug ...
Modules Tests buildsrv:28008 [buildsrv]Tests ...
Core Public buildsrv:28010 [buildsrv]Public ...
Core Release buildsrv:28010 [buildsrv]Release ...
Core Debug buildsrv:28010 [buildsrv]Debug ...
Modules Public buildsrv:28011 [buildsrv]Public ...
Modules Release buildsrv:28011 [buildsrv]Release ...
Modules Debug buildsrv:28011 [buildsrv]Debug ...
Modules Tests buildsrv:28011 [buildsrv]Tests ...
Core Public buildsrv:28012 [buildsrv]Public ...
Core Release buildsrv:28012 [buildsrv]Release ...
Core Debug buildsrv:28012 [buildsrv]Debug ...
Modules Public buildsrv:28014 [buildsrv]Public ...
Modules Release buildsrv:28014 [buildsrv]Release ...
Modules Debug buildsrv:28014 [buildsrv]Debug ...
Modules Tests buildsrv:28014 [buildsrv]Tests ...
Core Public buildsrv:28032 [buildsrv]Public ...
Core Release buildsrv:28032 [buildsrv]Release ...
Core Debug buildsrv:28032 [buildsrv]Debug ...
Modules Public buildsrv:28018 [buildsrv]Public ...
Modules Release buildsrv:28018 [buildsrv]Release ...
Modules Debug buildsrv:28018 [buildsrv]Debug ...
Modules Tests buildsrv:28018 [buildsrv]Tests ...
------------- -------------- --------------- ...

Obviously, this is pretty much useless the more branches I need to observe and I can only guess based on the order of insertion which line refers to which build.

To clarify: The issue I'm having with the above list is that we have several build projects with the same name. The only way they can be distinguished in CCTray is by the port number in their server names, and those are assigned asystematically and thus nothing I would want to memorize.

This tool would be so much more useful if, in the CruiseControl.NET Tray Settings dialog box, there were some way to optionally assign a custom display name to each project that is then shown in the main window.

Is there may already some non-obvious way to do this (by directly editing any config files? Or alternatively, for setting a custom display name for each server?

RubenWillems commented 4 years ago

Hi

if you just want to view if the builds are ok or not, take a look at Cradiator https://github.com/PandaWood/Cradiator Here you can setup different view ports.

Let's say : Modules and Core in your example that would show a screen where you only see the modules project, and after x time, the Core projects. there is also an option : Show only broken

when this is set, and there are no broken projects a smiley is shown for that view port. when there is a broken project, only the broken ones are shown, and not the ok ones. From a dashboard point of view, only the broken ones are of interest

with kind regards Ruben Willems

On Wed, 17 Jun 2020 at 17:09, Florian Haag notifications@github.com wrote:

In my CCTray, I am currently observing various builds of four of our branches, namely our trunk and three release branches. CCTray can successfully connect to the build server (by means of .NET Remoting) and retrieve the status ... which is then shown in my table in rows starting like this: Project Server Category ... Core Public buildsrv:28002 [buildsrv]Public ... Core Release buildsrv:28002 [buildsrv]Release ... Core Debug buildsrv:28002 [buildsrv]Debug ... Modules Public buildsrv:28008 [buildsrv]Public ... Modules Release buildsrv:28008 [buildsrv]Release ... Modules Debug buildsrv:28008 [buildsrv]Debug ... Modules Tests buildsrv:28008 [buildsrv]Tests ... Core Public buildsrv:28010 [buildsrv]Public ... Core Release buildsrv:28010 [buildsrv]Release ... Core Debug buildsrv:28010 [buildsrv]Debug ... Modules Public buildsrv:28011 [buildsrv]Public ... Modules Release buildsrv:28011 [buildsrv]Release ... Modules Debug buildsrv:28011 [buildsrv]Debug ... Modules Tests buildsrv:28011 [buildsrv]Tests ... Core Public buildsrv:28012 [buildsrv]Public ... Core Release buildsrv:28012 [buildsrv]Release ... Core Debug buildsrv:28012 [buildsrv]Debug ... Modules Public buildsrv:28014 [buildsrv]Public ... Modules Release buildsrv:28014 [buildsrv]Release ... Modules Debug buildsrv:28014 [buildsrv]Debug ... Modules Tests buildsrv:28014 [buildsrv]Tests ... Core Public buildsrv:28032 [buildsrv]Public ... Core Release buildsrv:28032 [buildsrv]Release ... Core Debug buildsrv:28032 [buildsrv]Debug ... Modules Public buildsrv:28018 [buildsrv]Public ... Modules Release buildsrv:28018 [buildsrv]Release ... Modules Debug buildsrv:28018 [buildsrv]Debug ... Modules Tests buildsrv:28018 [buildsrv]Tests ... ------------- -------------- --------------- ...

Obviously, this is pretty much useless the more branches I need to observe and I can only guess based on the order of insertion which line refers to which build.

This tool would be so much more useful if, in the CruiseControl.NET Tray Settings dialog box, there were some way to optionally assign a custom display name to each project that is then shown in the main window.

Is there may already some non-obvious way to do this (by directly editing any config files?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/ccnet/CruiseControl.NET/issues/292, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEUZAP7K5RKE5E2L5F6NHDRXDMBLANCNFSM4OAWIBKQ .

fhaag commented 4 years ago

Hi

if you just want to view if the builds are ok or not, take a look at Cradiator https://github.com/PandaWood/Cradiator

Hi,

Thanks for pointing out that tool.

I may try it in other contexts, though in this case, my use case is unfortunately a bit different:

Indeed, seeing which builds have failed is one important task (but even then, I'd like to see them all at a glance, rather than waiting for a certain amount of time to see the next couple of projects).

But then, another thing I often do in CCTray is look for a specific running task, right-click it and examine its current progress.

Or, quickly find a particular non-running, non-automated task in CCTray, right-click it, and force a rebuild.

Thus, I'm not sure whether Cradiator is a suitable solution for my use cases. But anyway, to be certain: If I did set up different viewports in Cradiator, how would that help me distinguish which one of my (w.l.o.g.) "Core Public" projects is currently shown? Can I enter some custom viewport name that is then displayed?

Best Regards Florian Haag

RubenWillems commented 4 years ago

Hi

An example of a view : This will only show the Core projects : Core Public Core Release Core Debug

The filtering is done on the example on the project-regex : Core.*

<view url="http://TheServer/ccnet/XmlStatusReport.aspx"
    skin="StackPhoto"
    project-regex="Core.*"
    category-regex=.*l"
    server-regex=".*"
    name="Core"
    showOnlyBroken="true"
    showServerName="false"
    showOutOfDate="false"
    outOfDateDifferenceInMinutes="0"
  />

Suppose that only the Debug is broken, only that project will be displayed in red, because of showOnlyBroken being set to true. if you set showOnlyBroken to false, all 3 projects will be shown : 2 green and 1 red.

Every view will cycle with an interval of 10 seconds, that interval can also be set in the config. I also started with showing every project but stopped due to the reasons of very many projects : 30.000 + (no kidding) and in that case the showOnlyBroken is very handy and being able to group projects helps a lot

The idea is that one can clearly see which project needs attention, and even with only 10 projects and only 1 broken it becomes difficult to read the name the screen autoscales, so every project gets 1/10 of the screen size.

You could also make a view on 'Release' projects so it will display Core, Module

many ways to display

with kind regards Ruben Willems

On Wed, 17 Jun 2020 at 22:56, Florian Haag notifications@github.com wrote:

Hi

if you just want to view if the builds are ok or not, take a look at Cradiator https://github.com/PandaWood/Cradiator

Hi,

Thanks for pointing out that tool.

I may try it in other contexts, though in this case, my use case is unfortunately a bit different:

Indeed, seeing which builds have failed is one important task (but even then, I'd like to see them all at a glance, rather than waiting for a certain amount of time to see the next couple of projects).

But then, another thing I often do in CCTray is look for a specific running task, right-click it and examine its current progress.

Or, quickly find a particular non-running, non-automated task in CCTray, right-click it, and force a rebuild.

Thus, I'm not sure whether Cradiator is a suitable solution for my use cases. But anyway, to be certain: If I did set up different viewports in Cradiator, how would that help me distinguish which one of my (w.l.o.g.) "Core Public" projects is currently shown? Can I enter some custom viewport name that is then displayed?

Best Regards Florian Haag

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ccnet/CruiseControl.NET/issues/292#issuecomment-645619972, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEUZAO6GFBXZBP5NXL26RDRXEUWRANCNFSM4OAWIBKQ .

fhaag commented 4 years ago

Hi,

Thank you for your detailed explanations!

As I said, I'm not so much interested in the failing projects. Rather than that, I often want to interact with projects that build fine.

With that said, though, I'm giving Cradiator a try. Unfortunately, it seems it exhibits exactly the same problems as I described for CCTray, but maybe I just haven't found the correct settings yet?

For instance, you gave the following example:

An example of a view : This will only show the Core projects : Core Public Core Release Core Debug

Uh, no ... actually, what I'm seeing now in Cradiator is:

Core Public Core Release Core Debug Core Public Core Release Core Debug Core Public Core Release Core Debug Core Public Core Release Core Debug

So ... how can I tell which is which? Which of those projects named "Core Public", for instance, is the trunk one, which one is from which branch? Exactly the same issue as in CCTray, unless I can somehow add a custom display name to each of those projects.

Suppose that only the Debug is broken, only that project will be displayed in red, because of showOnlyBroken being set to true.

Hm. Doesn't seem to work, I've set that to true, and yet, I'm seeing all 12 projects (all of which are currently green). But even so - if it did work, how could I tell which one of the four Debug projects is broken?

RubenWillems commented 4 years ago

Hi

I missed a part sorry for that, you have multiple build servers, which I did not take in account I guess that each build server works on a certain branch, so set up a few views as following : assuming the server names are buildsrv:28002, buildsrv:28008, ...

you can also set showServerName="true" I do not know by head anymore if that will show the servername on eacht project, or as a bar on the bottom.

below are a few view definitions that should make it more clear

<view url="http://TheServer/ccnet/XmlStatusReport.aspx" skin="StackPhoto" project-regex="Core." category-regex=.l" server-regex="buildsrv:28002"

with kind regards Ruben Willems

On Thu, 18 Jun 2020 at 16:02, Florian Haag notifications@github.com wrote:

Hi,

Thank you for your detailed explanations!

As I said, I'm not so much interested in the failing projects. Rather than that, I often want to interact with projects that build fine.

With that said, though, I'm giving Cradiator a try. Unfortunately, it seems it exhibits exactly the same problems as I described for CCTray, but maybe I just haven't found the correct settings yet?

For instance, you gave the following example:

An example of a view : This will only show the Core projects : Core Public Core Release Core Debug

Uh, no ... actually, what I'm seeing now in Cradiator is:

Core Public Core Release Core Debug Core Public Core Release Core Debug Core Public Core Release Core Debug Core Public Core Release Core Debug

So ... how can I tell which is which? Which of those projects named "Core Public", for instance, is the trunk one, which one is from which branch? Exactly the same issue as in CCTray, unless I can somehow add a custom display name to each of those projects.

Suppose that only the Debug is broken, only that project will be displayed in red, because of showOnlyBroken being set to true.

Hm. Doesn't seem to work, I've set that to true, and yet, I'm seeing all 12 projects (all of which are currently green). But even so - if it did work, how could I tell which one of the four Debug projects is broken?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ccnet/CruiseControl.NET/issues/292#issuecomment-646037897, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEUZAO3SFHHGPFL4E6JJ4TRXIM7FANCNFSM4OAWIBKQ .

fhaag commented 4 years ago

Ok, but again, I can already see the server names in CCTray perfectly fine.

The issue is that the only difference between the server names are different port numbers, which do not follow any logical system, and I do not want to memorize them.

It seems the name specified for each view in the config is not displayed in the UI, either, so all I might be able to go by in Cradiator is the server name again.

As I said, I will bookmark Cradiator and may use it on another occasion at some point as the colourful overview is really nice, but with respect to the issues described in this ticket, it seems that Cradiator exhibits exactly the same problems as CCTray.