Plusieurs fois dans ma carrière, je travaille dans un groupe de logiciels qui a déterminé que
a) Nous avions besoin d'un système de construction/test
b) Nous devrions écrire notre propre
c) Nous peut avoir un développeur passer une semaine, le faire et ils ne devraient pas avoir à le toucher à nouveauLangue Agnostique système de gestion Créer
Chaque fois, cela a abouti à un système qui ne semble fonctionner que pour la personne qui l'a écrit et nécessite leur attention constante . J'ai passé du temps à plusieurs reprises à la recherche d'un outil que je pourrais saisir et qui répondrait à nos besoins, mais je suis venu les mains vides. Généralement, des outils comme ce serveur constituent un marché très étroit. Je suis à nouveau sur le point d'avoir besoin de quelque chose comme ça. Y at-il quelque chose là-bas, ou est-ce qu'on l'écrit à nouveau?
Voici mes besoins par ordre de priorité (les quelques dernières sont tout simplement agréable d'avoir):
Capacité à gérer une construction multi-projets. Nous avons plusieurs composants qui fournissent tous deux des choses que d'autres composants utilisent et utilisent des choses d'autres composants. Un développeur devrait être en mesure de vérifier 1 composant et faire des changements sans avoir à construire le monde. Les dépendances en dehors du projet doivent être intégrées automatiquement. Il est donc essentiel de pouvoir pousser et tirer les objets construits sur un serveur. Un autre aspect de ceci est la capacité d'être capable de ramener toutes les dépendances à un répertoire local pour le développement sur la route.
Ne vous inquiétez pas de savoir exactement comment les choses seront construites. Cela peut sembler bizarre, mais je ne veux pas que le système de construction s'inquiète de compiler mon code. Il y a déjà de très bons outils pour toutes les langues - Ant, CMake, etc. Je veux juste lui dire ce qu'il faut appeler pour que les choses se construisent, et quelle sortie cela devrait prendre en compte. De cette façon, le projet A peut être en Java, le projet B peut être en C++, vous avez l'idée.
d'avoir un moyen d'exécuter des tests sur la sortie
Afficher les résultats build/tests en cours sur une page web
Email les résultats
Intégration avec RCS (nous utilisons svn)
Je pense que vous allez devoir expliquer pourquoi des choses comme des scripts et/ou Ant, msbuild, etc. ne répondent pas. Vous semblez également indiquer que vous souhaitez stocker les binaires dans le contrôle de version ou au moins sur un serveur de construction. Pourquoi ne pas simplement exposer les résultats de la machine de construction sur un site FTP - sans étiquette/révision. – Tim