J'ai quelques tests d'intégration de long courance qui sont automatiquement exécutés par TeamCity Server lorsque je vous engageons à contrôler la source. P>
TeamCity me permet d'empêcher ces tâches de reprendre simultanément tous les agents de construction en limitant les constructions simultanées, mais je me demande si il est possible d'annuler TeamCity annuler toute tâche actuelle de cette configuration lorsqu'un nouveau démarre? P >
Dans cet environnement dès qu'il existe une nouvelle commission de contrôle de la source, les anciennes essais des tests d'intégration sont hors de propos, je ne souhaite donc pas que le serveur gère son temps à exécuter des tests pour les anciennes versions. P>
3 Réponses :
Je ne pense pas que cela soit possible, et je dirais que c'est par conception. p>
Imaginez un monde où cela est autorisé, vous ne sauriez jamais quelle commission a provoqué un test pour commencer à échouer. Si vous aviez suffisamment de chevauchement des commits, vous pourriez avoir 50 constructions avant de savoir que le test final à exécuter échoue et qu'il n'aurait aucune idée de savoir s'il s'agissait de la dernière commission ou de l'un 49 avant cela qui le faisait échouer. P>
IMHO Vous serez mieux en train de vous concentrer sur la fabrication de sorte que plusieurs exécutions puissent se produire simultanément sur différents serveurs, pour obtenir la vitesse de votre choix, ne pas jeter le bébé avec l'eau de bain p>
tandis que je ne pense pas que cela soit pris en charge hors de la boîte, si je devais faire cela, je pense que je regarderais Vous pouvez obtenir un Liste des constructions à l'aide de l'API ainsi donc devrait pouvoir annuler tous ceux qui ne sont pas les plus récents p>
Tout d'abord, merci pour votre commentaire. Toutefois, des tests en question sont des tests d'intégration qui peuvent être brisés par des problèmes environnementaux en dehors de la base de code (Think Base de base de données), donc que ce type de suivi est potentiellement inutile. Je comprends les préoccupations de conception de l'équipe de TeamCity et que ceci est un cas d'Edge, mais à cette fin, la construction d'une construction serait en fait utile. Je conviens que si je pouvais réduire le temps, les tests prennent pour être dans un délai raisonnable, le problème serait sans importance, mais je ne suis pas sûr que cela soit possible ici et certainement pas durable.
@Liamflanagan Je comprends que tout le monde a des cas de bord, et parfois le pragmatisme gagne, quelle que soit la laideur. À la fin de la journée, TeamCity est une webApp, et l'annulation se produit parce que quelqu'un appelle une méthode sur TC. Vous pourriez certainement simuler cela. Je vais mettre à jour ma réponse avec ce que je regarderais
Non, ce n'est pas possible. Vous pouvez l'annuler manuellement. Ou vous pouvez ajouter une période tranquille (la valeur par défaut est de 60 secondes) afin qu'une construction ne commence pas immédiatement lorsque quelque chose a été poussé. Ensuite, si certains commises arrivent après quelques secondes ou minutes, ils seront inclus dans la construction de TeamCity. P>
Je suppose que @gerald faisait référence à: - l'annuler à partir de l'agent de construction en cours d'exécution: - Agents (en haut du tableau de bord) - Recherchez la version exécutive pertinente - en appuyant sur le bouton d'arrêt de droite ou en le supprimant de la construction. File d'attente: - Construire la file d'attente (en haut du tableau de bord): - Recherchez la version appropriée dans la file d'attente - Appuyez sur le bouton Supprimer sur le côté droit (édité parce que j'ai appuyé sur Entrer trop rapidement!)
Ma solution est similaire à Mise à jour de Sam mais j'utiliserais une configuration "préambule" déclenchée par comme source contrôler. Ce travail est seul responsable de vérifier si l'un de vos travaux de test d'intégration est déjà en cours d'exécution et Arrêtez-les avec un appel API de repos , au besoin. P>
Les principaux tests d'intégration sont exécutés à partir d'une configuration de travail dédiée utilisant un déclencheur de finition associé à la configuration du préambule. P>
Cette configuration le rend assez simple d'interroger quels travaux fonctionnent et devront peut-être être annulés s'il y a de nouveaux travaux à faire. Donc les étapes deviennent: p>
Que voulez-vous dire avec la configuration "Préambule"? Voulez-vous dire une première étape de construction ou est-ce qu'une fonctionnalité que je ne semble pas sembler trouver des informations sur?
Quoi qu'il en soit, Ce PowerShell travaille pour moi. Merci de me faire remarquer dans la bonne direction.