J'ai beaucoup lu récemment sur divers processus de déploiement d'applications Web en utilisant SVN ou GIT, en vue de repenser la façon dont nous déployons actuellement où je travaille.
Comme c'est le cas avec de nombreuses saveurs d'Agile, il est supposé que tout ce qui est engagé dans la maîtrise ou le tronc est prêt pour la production. GitHub et Etsy, http://codeascraft.etsy.com/2010/05/20/quantum-of-deployment/, disent qu'ils fonctionnent sur cette base (bien qu'Etsy ait en fait un environnement de transfert).
Ce processus suppose que tous les tests unitaires et les tests CI ont été exécutés. Vous exécutez les tests localement et sur CI, puis vous vous engagez sur le tronc. Donc, à ce stade, votre code est techniquement solide.
Votre code peut être techniquement correct, mais les tests utilisateurs / fonctionnels peuvent révéler plus de bogues, en particulier en ce qui concerne les tests frontaux.
Ma question est la suivante. Où les AQ et les propriétaires d'entreprise testent-ils les modifications de fonctionnalités que vous avez mises en œuvre? Sur votre machine de développement locale avant de vous engager sur le tronc, ou sur une machine d'assurance qualité / de transfert?
Si vous avez une machine intermédiaire qui s'exécute sur le tronc et que vous supposez que tout le code engagé dans le tronc est prêt pour la production ... eh .. alors à quel moment le code est-il signé et prêt à entrer en production à la fois technique et commercial perspective? Si vous n'avez qu'une seule machine intermédiaire, de nombreux développeurs et que c'est là que le code doit être QA, alors comment pouvez-vous déployer à partir du tronc, car de nombreux changements de développeurs peuvent attendre la signature.
J'aimerais savoir comment les autres ont abordé cela?
la source
Nous avons des tests d'acceptation automatisés sur la même branche de fonctionnalité. Lorsque vous créez une version candidate, elle inclut les tests automatisés que vous avez exécutés pour voir si la fonctionnalité réussit. Vous testez également la version candidate. Lorsque tout passe, vous le promouvez ensuite en fusionnant pour le maîtriser.
Plus d'informations sur ce processus ici:
https://plus.google.com/109096274754593704906/posts/R4qkeyRadLR
Vérifiez également les commentaires.
J'espère que cela t'aides,
Adam
la source
En règle générale, attendre de valider avant que le code soit parfait est la moitié du temps pour reprendre les avantages du système de contrôle de version. (Sans beaucoup d'élaboration, je dirais qu'à moins qu'on ne permette plusieurs enregistrements à VCS, on n'a aucun moyen de revenir sur mon propre travail!) Donc, comme une pratique, nous demandons toujours aux gens de garder l'enregistrement (dans leur branche pour SVN ou il peut s'agir de commits locaux en cas de GIT) autant qu'ils le souhaitent. En fait, mieux c'est.
Cependant, lorsque le point arrive où tout semble être fait et testé - nous l'appelons une version puis il est fusionné avec le tronc. Essentiellement, QA peut certifier le RC en prenant un nouveau contrôle sur la
HEAD
branche et s'il / elle est Okey, il en va de même avec le tronc.Donc, nous utilisons essentiellement le concept de branches de tâches ou de branches privées afin que les gens soient libres d'effectuer les enregistrements autant qu'ils le souhaitent. Dans le même temps, le coffre est relativement exempt de tout enregistrement cassé .
la source