Obtenir CruiseControl.NET à la sortie d'utilisation de tâches de longue durée lors de l'affichage « Activité »

StackOverflow https://stackoverflow.com/questions/5304890

  •  24-10-2019
  •  | 
  •  

Question

CruiseControl.NET , j'ai deux projets mis en place, l'un pour la construction et un pour déploiement de packages de construction.

Notre construction est en grande partie basée autour MSBuild , et comme il court le tableau de bord met à jour en permanence avec la dernière sortie de la construction. Cela signifie que même si une construction complète peut prendre 15 minutes, vous pouvez voir exactement où il est, et qu'il fait des progrès.

Le Deploy est exécuté à l'aide d'un autre outil (VisualBuild, bien que je suis voir le même comportement de base avec d'autres outils tels que PowerShell). Ceci est une autre tâche de longue haleine, mais dans ce cas, le tableau de bord est pas mis à jour avec sa sortie à mesure qu'elle progresse. Depuis deploy peut prendre beaucoup de temps, il est difficile de dire si les choses avancent ou si les choses sont au point mort. La sortie est de s'enregistré dans le journal des CruiseControl.NET, et affiche sur le tableau de bord, une fois les choses sont faites, mais pas tout le Deploy est en cours.

Y at-il un moyen d'obtenir une sortie d'autres tâches de longue durée arbitraire mis à jour sur le tableau de bord en temps réel quelque chose qui ressemble? Ce qui fait à cet égard particulier MSBuild?

Était-ce utile?

La solution

CruiseControl.Net, depuis la version 1.4, inclut le support pour créer des fichiers d'écoute : il est un mécanisme qui permet de suivre l'exécution des tâches en cours d'exécution à long en lisant un fichier journal. Bien que ce mécanisme est générique et peut être utilisé avec un outil, CruiseControl.Net par lui-même des navires seulement pour créer des écouteurs MSBuild et NAnt (qui signifie que pour ces deux outils est automatiquement signalé des progrès, sans besoin de configuration supplémentaire).

Pour un outil externe, comme VisualBuild, appelé par tâche <exec>, vous auriez à brancher votre propre enregistreur qui crée un simple fichier de progression:

<data>
  <Item Time="2007-10-14 08:43:12" Data="Starting Build timetester" />
  <Item Time="2007-10-14 08:43:16" Data="Starting Target build" />
  <Item Time="2007-10-14 08:43:16" Data="Sleeping for 5000 milliseconds." />
</data>

à l'emplacement pointé par la variable d'environnement CCNetListenerFile.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top