En intégration continue, quel est le meilleur moyen de traiter les dépendances d'applications externes

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

Question

En utilisant notre serveur TeamCity Continuous Integration, nous avons découvert certains problèmes que nous ne connaissons pas quant à la meilleure façon de les gérer. Comment référencer les applications externes requises par notre application sur le serveur CI.

Cela a été découvert initialement avec une dépendance à Crystal Reports. Nous avons donc installé Crystal Reports sur le serveur, corrigeant le problème immédiat. Cependant, à mesure que nous déplaçons davantage d'applications sur le serveur CI, nous découvrons davantage de dépendances.

Quelle est la meilleure stratégie ici? Est-ce pour continuer à installer les applications requises sur le serveur?

Merci

Était-ce utile?

La solution

Dans la mesure du possible, intégrez les dépendances externes à votre système de construction. Par exemple, installez le programme d’installation dans votre système de contrôle de version et indiquez-lui une étape qui le vérifie et l’exécute en mode silencieux (de nombreux installateurs prennent en charge un mode sans action de l’utilisateur, qui utilise parfois la ligne de commande / s).

Ainsi, si vous devez configurer une autre machine de construction pour une branche ou pour un nouveau matériel, tout est répétable.

Autres conseils

Si vos versions requièrent l'application proprement dite pour mener à bien la construction, vous devriez probablement continuer à installer l'application sur votre serveur de génération.

Si vous avez simplement besoin de références à des dll ou à des assemblys à partir de l'application, ma société a donc créé des 'kits de développement logiciel (SDK)' installables à partir des références requises pour une application particulière, puis les a installés sur notre système de développement et mis en place des machines. Répertoires de bibliothèques connus auxquels nos solutions font référence.

Sur la machine de construction, nos étapes de pré-génération installent la version correcte des dépendances, puis les nettoient lorsque nous avons terminé.

Récemment, nous avons commencé à utiliser des machines virtuelles pour nos machines de génération que notre processus de construction active. Les SDK y installent les SDK en tant que pré-génération, puis sont restaurés à leur état instantané après la construction. Certaines dépendances étaient quasiment impossibles à désinstaller. C’est donc un point de départ propre à chaque fois.

Si vous utilisez Maven pour construire, vous pouvez définir vos dépendances dans le fichier pom.xml. Ils seront ensuite téléchargés automatiquement si nécessaire.

Je ne sais pas si j'ai bien suivi ...

Je suppose que votre application dépend de cette application externe pendant la construction? Dans ce cas, cela devrait être sur la machine en train de faire du CI ...

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