2009-01-07 8 views
4

J'ai entendu Google a un processus automatisé comme ça:Construire Server Best Practices

  • Lors de l'enregistrement, votre code est vérifié dans un emplacement temporaire.
  • Il est construit.
  • Les vérifications de style s'exécutent.
  • Tests exécutés.
  • S'il n'y a pas de problèmes, le code va dans le dépôt réel.
  • Vous recevez un e - mail contenant les résultats des tests, des graphiques de performance, les résultats de contrôle de style et si votre code est cochée dans

Donc, si vous voulez savoir si vous avez cassé quelque chose ou la grande performance vous gagnez prévu. s'est produit, vous venez de vous enregistrer et de recevoir un e-mail vous indiquant ce que vous devez savoir.

Quelles sont vos meilleures pratiques de serveur de construction préférées?

+0

Rechercher ici. Il y a quelques questions concernant les meilleures pratiques de processus de construction. – EBGreen

Répondre

5

Ce que vous avez décrit pour google est ce que chaque processus de construction de base fait. Des projets spécifiques peuvent avoir des besoins supplémentaires, par exemple - la façon dont nous déployons des applications web de la mise en scène à la production:

  • Construire commencer
  • site en est mis hors ligne (Apache redirige vers différents répertoire contenant une page « en construction »)
  • mise à jour SVN est couru pour le serveur de production
  • deltas de schéma de base de données sont coururent
  • Les tests sont heurtèrent à la source mise à jour et le schéma
  • en cas d'échec: rollback est couru (SVN et revenir UNDO schéma de base de données)
  • site est de retour en ligne
  • Construire fin
1

Sur la plate-forme java j'ai essayé chaque système principal de CI, il est. Mon conseil est que payer pour une solution commercialement soutenue a été le système de construction le moins cher que j'ai jamais vu. Ces choses prennent temps pour maintenir, soutenir et dépanner. Surtout avec une lourde charge de builds courant tout le temps.

1

L'exemple de flux de travail que vous donnez est similaire à celui proposé par TeamCity.L'idée étant:

  1. code
  2. Arrivée à "pré-test"
  3. serveur CI tests les tests de "pre-commit"
  4. Si (et seulement si) passer, le serveur CI commet le changement de code au dépôt principal

C'est une guerre religieuse, mais je préfère:

  1. code - test - Refactor (boucle)
  2. Commit
  3. serveur
  4. CI a également valide votre commit

Chaque programmeur responsable devrait exécuter tous les te sts avant de commettre.

L'argument principal pour la première façon est qu'il garantit qu'il n'y a pas de code brisé dans SCM. Cependant, je dirais que:

  • Vous devriez confiance vos développeurs de tester avant d'engager
  • Si les tests prennent à long le problème est vos tests lents, pas le flux de travail
  • Les développeurs sont désireux de garder des tests rapides
  • en se fondant sur le serveur de CI pour exécuter des tests vous donner faux sentiment de sécurité