Le monde du logiciel embarqué utilise souvent des indicateurs de construction, dans le code de l'application elle-même ( #define
/ #ifdef
instructions, par exemple) et / ou dans les fichiers de configuration des outils de construction ( makefile
les, par exemple).
Les indicateurs de construction peuvent être utilisés, de manière similaire, non seulement pour les fonctionnalités, mais aussi pour toutes sortes de refactorisation de code, migrations, prise en charge du débogage, etc.). Ils permettent de valider dans la branche d'intégration des modifications partielles ou non vérifiées sans interrompre la construction ou provoquer des régressions dans les fonctionnalités / projets qui fonctionnent déjà dans la branche. Excellent pour gérer les corrections de points aux côtés de changements de progression importants / risqués / lents (qui nécessiteraient autrement une branche à longue durée de vie) d'une manière d'intégration continue.
Mais en plus de vérifier le code de branche déjà existant pour les régressions, il est également possible d'effectuer des vérifications de progression / stabilité du nouveau code. Pour cela, les drapeaux de construction doivent être basculés.
Une façon de basculer les drapeaux serait d'utiliser, dans un pipeline de vérification distinct du système CI de la même branche (s'il prend en charge une telle fonctionnalité), un fichier de patch basculant le drapeau - à appliquer à un espace de travail séparé avant la construire. Un ensemble d'artefacts différent serait construit dans cet espace de travail, puis vérifié.
Alternativement, une branche de fonctionnalité longue durée peut être extraite de la branche d'intégration principale, mais le seul changement dans cette branche de fonctionnalité serait l'indicateur basculé. En raison de ce petit changement, la branche de fonctionnalité peut être automatiquement synchronisée extrêmement rapidement - en observant pratiquement de très près la branche d'intégration principale. Une exécution distincte de CI sur cette branche n'aurait plus besoin d'un fichier de patch préliminaire. Il serait trivial de transporter une telle branche de fonctionnalités même pendant une période de temps prolongée.
Il peut également être possible de créer, dans la branche d'intégration principale, de nouveaux artefacts de build qui ne seraient en réalité que des clones des artefacts de build existants mais avec les drapeaux basculés. De cette façon, ni le fichier de patch préliminaire ni la branche de fonctionnalité ne seraient nécessaires pour vérifier le nouveau code, directement dans la branche principale.