2009-05-26 7 views
2

Je viens de valider une très grande bibliothèque tierce (Boost) dans notre contrôle source. Je l'ai mis en place avec son propre dépôt. J'ai tagué sa version pour que d'autres projets puissent svn: externals cette version spécifique.Stockage de la bibliothèque tierce dans le contrôle source avec l'utilisation de l'intégration continue

Ceci est parfaitement bien, jusqu'à ce que je me rende compte que mon serveur d'intégration continue (CI) fera un contrôle complet chaque fois que j'ai enregistré du code. (Évidemment, j'ai intentionnellement installé mon serveur CI comme ça au début). Cela pourrait conduire à une très longue heure de paiement à la fin du serveur CI. Donc, la question est: est-ce une bonne chose? Quelqu'un peut-il suggérer potentiellement une meilleure façon de gérer ce modèle?

EDIT: J'utilise le serveur CI TeamCity.

Répondre

3

Quelques possibilités viennent à l'esprit:

  1. changement CI de mettre à jour progressivement.
  2. Évitez svn: externals, lien symbolique à la caisse lors de la construction. Par défaut, TeamCity est configuré pour mettre en cache les sources exportées (Mode de paiement: Automatiquement sur le serveur).
+0

Je pense que 1) sonne comme une bonne idée. Peut-être que si je pouvais configurer le serveur CI pour faire simplement une mise à jour svn: sur les fichiers qui ont changé, et essayer de reconstruire/tests unitaires au lieu d'une vérification complète, cela pourrait être mieux. – sivabudh

+0

pour le numéro 2) quand vous dites lien symbolique ... vous voulez vérifier la bibliothèque de la 3ème partie quelque part sur le serveur de CI, et juste avoir le lien de projet à ce répertoire? (la prochaine fois que le projet est extrait, la bibliothèque tierce n'est pas touchée) – sivabudh

6

Cela signifie que la première version peut prendre un certain temps, mais les versions suivantes seront beaucoup plus rapides car elle ne charge que les fichiers modifiés. Les caisses automatiques propres ne se produiront que dans certaines circonstances. Si vous avez archivé la totalité de la bibliothèque tierce, y compris la documentation et la source, vous souhaiterez peut-être créer une règle de caisse filtrant ces fichiers externes afin de ne conserver que les binaires dont vous avez besoin pour compiler votre solution (en supposant que vous avez vérifié dans les binaires compilés). TeamCity permet plusieurs racines VCS dans chaque configuration de build, il peut donc être plus facile d'exclure des externes dans votre racine VCS principale (qui est la valeur par défaut), puis d'ajouter une autre racine VCS pointée vers votre autre référentiel, avec un checkout règle de mettre les bibliothèques précompilées Boost dans le répertoire attendu.

Pour plus d'informations sur les règles propres et checkouts de caisse, voir:

http://www.jetbrains.net/confluence/display/TCD4/Clean+Checkout#CleanCheckout-sourcescache http://www.jetbrains.net/confluence/display/TCD4/VCS+Checkout+Rules

Questions connexes