Bonjour,

Je cherche à mettre en place une base agile avec notamment une intégration continue.

Voici le contexte :

Une seule application web destinée à plusieurs clients (= différentes sociétés), développée par plusieurs équipes.
L'application comporte divers pôles :
- Production (stock, commandes, achats)
- Ventes (facturation, transport)
...
Ainsi, chaque équipe s'occupe d'un pôle.

Le hic, c'est que les développements peuvent concerner une demande d'un client précis pour un module précis, ou alors une modification générale dans un module pour tous les clients.
Il y a qu'un seul portail web, donc les fonctionnalités précises pour un seul client sont disponibles uniquement pour ce client d'après un contexte de cession (enfin là n'est pas la question).

Le problème :

Chaque équipe va, durant son processus de développement, intégrer des fonctionnalités au produit de test. C'est la même base de l'intégration continue pour toutes les équipes et tous les clients. Ici pas de problème car chaque client ne pourra tester que ce qui le concerne du fait de son contexte de cession.

J'ai donc ma branche Dev (référentiel commun de toutes les équipes) et la branche Principale qui correspond au produit à tester par les clients.
Ainsi, quand une équipe à finis une fonctionnalité et qu'elle souhaite la faire tester par le client, elle fusionne ses modifications (et uniquement les siennes) de la branche Dev vers la Principale.

Le problème est comment faire pour pouvoir mettre en production (vers une release de l'application) quand un des client juge les fonctionnalités stables et suffisante ?
Car il ne faut pas mettre en production les autres fonctionnalités en test qui concernent les autres clients ...

Je pense faire une branche Production (qui correspond à la release de l'application). Comme ça dès qu'un client souhaite mettre en production les fonctionnalités le concernant, on fusionne la branche Principale avec la branche Production en ne sélectionnant que les changeset qui concerne le développement de ces fonctionnalités.

Je ne sais pas si vous pensez que cela est correcte/faisable, car je me pose beaucoup de questions du fait que la fusion entre 2 branches en ne sélectionnant que certains changeset va entrainer pas mal de conflits à gérer ...

Pourriez-vous me donner votre avis à ce sujet ?