Je pense que toute opinion sur la façon dont vous gérez les builds dépend de ce que vous appréciez dans votre processus et ce n'est pas clair d'après votre question.
En aparté; la plupart des systèmes de construction ne nécessitent pas de construction distincte pour chaque commit. Si vous avez plusieurs validations au développement dans votre intervalle d'interrogation, vous devriez être capable de les tester/déployer toutes en une seule construction. Cela pourrait être bon ou mauvais pour vous.
Intégration continue
L'intégration continue devrait vous donner un processus de développement plus lisse et plus rapide avec l'assurance que votre projet est dans un état amovible (ou au moins passer ses propres tests, nous espérons que c'est la même chose). J'ai constaté que les constructions manuelles échouent systématiquement à appliquer le même niveau de qualité. Il est trop facile de commettre des changements "sachant" qu'elle sera corrigée avant la prochaine génération manuelle qui commence à glisser de plus en plus loin ou quand une compilation échoue, il est soudainement difficile de savoir lequel des changements a introduit l'échec. Pour une intégration continue, je m'attendrais non seulement à des versions automatisées de votre branche de développement, mais également à des versions automatisées de chaque branche d'entités montrant qu'elles passent vos tests avant leur fusion en développement.
Dans de nombreux environnements, il est possible que le coût d'une construction CI soit négligeable par rapport au coût de l'équipe de développement. Par exemple, je suis actuellement en train de regarder un projet avec une moyenne d'environ 5 committers actifs et seulement 12 builds par jour au cours des 4 dernières années. Garder les tests rapides et fiables n'est pas facile, mais il devrait y avoir beaucoup de builds (en même temps dans le cas des branches).
Il existe des environnements dans lesquels le processus de test d'une construction ne peut pas être bon marché ou rapide, par ex. vous devez exécuter des tests de matériel ou des tests de performance qui prennent des heures. Dans ces cas, vous avez besoin d'une approche différente, mais vous n'êtes probablement pas en mesure de pratiquer une intégration continue et votre stratégie de développement/de branchement devrait refléter cela.
Livraison continue
livraison en continu va encore plus loin et raccourcit le temps de cycle du développement aux changements atteindre vos utilisateurs en déployant tous ceux libérables builds. S'il y a une étape manuelle dans le processus de libération (ou d'annulation) de ces builds, je ne crois pas que vous devriez appeler votre processus «livraison continue».
Vous pouvez avoir un très bon processus de déploiement automatisé sans être continu. La livraison continue peut être très utile pour certains produits, mais peut aussi être perturbatrice et inadaptée aux autres. Par exemple, nous déployons actuellement en permanence sur une application Web destinée aux consommateurs. Nous maintenons également des outils opérationnels backend où nous sommes plus conservateurs quant à quand libérer (ou au moins quand activer de nouvelles fonctionnalités) puisque les changements à ces outils peuvent introduire de nouveaux flux de travail que nous ne voulons pas apparaître au milieu du changement de quelqu'un sans avertissement .
tl; dr
Automatiser tout, ne ralentit pas votre équipe vers le bas en essayant de maintenir le nombre de builds petits.