Je pense à la meilleure façon de structurer des emplois dans Hudson, et de diviser en emplois. Je vais utiliser une application .NET comme exemple car c'est ce sur quoi je travaille actuellement, mais je pense que beaucoup d'idées sont génériques.Qu'est-ce qui se divise en différents travaux lorsque des fichiers créés dans le travail A sont nécessaires dans le travail B? (Exemple est la construction d'une application .NET en utilisant MSBuild)
Ce sont les étapes que je veux faire, sans penser à choses se divisant en emplois mais toujours penser à ce que les dépendances sont: (J'espère que vous comprenez ma notation, < - signifie dépend et [X] = AAAAA signifie que AAAAA est une description de la tâche [X].)
- [C] = Consultez le projet, en utilisant Mercurial dans ce cas.
- [C] < - [S] = Exécutez StyleCop sur les fichiers source pour vous assurer qu'ils sont conformes à avec notre norme de codage.
- [C] < - [D] = Créer une documentation à partir de notre projet en utilisant DoxyGen ou Sandcastle.
- [C] < - [O] = Exécutez le plugin de tâches de code pour obtenir une belle présentation de nos commentaires TODO etc.
- [C] < - [B] = Construire la solution en utilisant MSBuild avec la cible Release. Le résultat dans ce cas sera fichiers de bibliothèque compilés à DLL assembler fichiers. Nous aimerions archiver ces artefacts.
- [B] < - [T] = Exécuter des tests NUnit sur les fichiers de bibliothèque.
- [B] < - [F] = Utilisez FxCop pour obtenir une bonne analyse de code statique à partir des fichiers de bibliothèque .
- [B] < - [W] = Utilisez le plugin d'avertissement du compilateur du journal de construction pour pour extraire tous les avertissements donnés lors de la compilation.
- [D], [B] < - [R] = Libérer, créer une archive de version et la télécharger sur un serveur.
Si je partage tous ces en différents emplois:
- Comment dois-je obtenir le code source vérifié que je suis arrivé à l'étape [C] à l'étape [S], [D] , [O], [B] qui ont tous besoin du code source?
- Comment dois-je obtenir le fichier journal MSBuild à l'étape [W] qui était généré à l'étape [B]?
- Comment puis-je obtenir les artefacts DLL générés générés à l'étape [B] dans étape étape [T] et [F] qui en a besoin tous les deux?
Mon principal problème si je partage toutes les étapes en différents projets est comment obtenir ces choses, ces fichiers, entre les différents projets d'une manière agréable (je pouvais de tourner bien sûr des chemins de fichiers de codage dur mais cela semble inflexible, mais je peux me tromper).D'un autre côté, si je les divise en différents projets, j'obtiens moins de complexité pour chaque projet que si je remplissais toutes ces étapes en un seul projet. Il pourrait être difficile à maintenir si j'ai beaucoup de choses dans un projet. Et je ne pourrais pas non plus exécuter des projets disjoints en parallèle, ce qui accélérerait l'ensemble du processus .