Automatisation de la construction - Build automation

Automatisation de construction est le processus d'automatisation de la création d'une version du logiciel et les processus associés , y compris: compilation ordinateur code source en code binaire , emballage code binaire et en cours d' exécution des tests automatisés .

Aperçu

Historiquement, l'automatisation des builds était réalisée via des makefiles . Aujourd'hui, il existe deux catégories générales d'outils:

Utilitaire d'automatisation de construction
Cela inclut des utilitaires tels que Make , Rake , CMake , MSBuild , Ant , Maven ou Gradle (Java), etc. Leur objectif principal est de générer des artefacts de construction grâce à des activités telles que la compilation et la liaison du code source.
Serveurs d'automatisation de construction
Ce sont des outils Web généraux qui exécutent des utilitaires d'automatisation de construction sur une base planifiée ou déclenchée; un serveur d' intégration continue est un type de serveur d'automatisation de construction.

Selon le niveau d'automatisation, la classification suivante est possible:

Une liste de logiciels pour chacun peut être trouvée dans la liste des logiciels d'automatisation de construction .

Utilitaires d'automatisation de construction

Les utilitaires d'automatisation de construction permettent l'automatisation de tâches simples et répétables. Lors de l'utilisation de l'outil, il calculera comment atteindre l'objectif en exécutant les tâches dans le bon ordre spécifique et en exécutant chaque tâche. Les deux façons dont les outils de construction diffèrent sont celles axées sur les tâches et les produits. Les outils orientés tâches décrivent la dépendance des réseaux en termes de tâche spécifique et les outils orientés produit décrivent les choses en termes de produits qu'ils génèrent.

Serveurs d'automatisation de construction

Bien que les serveurs de build existaient bien avant les serveurs d'intégration continue, ils sont généralement synonymes de serveurs d'intégration continue, mais un serveur de build peut également être incorporé dans un outil ARA ou ALM .

Types de serveurs

  • Automatisation à la demande telle qu'un utilisateur exécutant un script sur la ligne de commande
  • Automatisation planifiée telle qu'un serveur d' intégration continue exécutant une compilation nocturne
  • Automatisation déclenchée telle qu'un serveur d'intégration continue exécutant une compilation à chaque validation dans un système de contrôle de version .

Automatisation de construction distribuée

L'automatisation est obtenue grâce à l'utilisation d'une ferme de compilation pour la compilation distribuée ou l'exécution de l'étape de l'utilitaire. Le processus de génération distribuée doit disposer de l'intelligence artificielle pour comprendre les dépendances du code source afin d'exécuter la génération distribuée.

Relation avec la livraison continue et l'intégration continue

L'automatisation de la construction est considérée comme la première étape vers la mise en œuvre d'une culture de livraison continue et de DevOps . L'automatisation de la construction combinée à l'intégration continue , au déploiement , à l' automatisation des versions d'applications et à de nombreux autres processus aident à faire avancer une organisation dans l'établissement des meilleures pratiques de livraison de logiciels.

Avantages

Les avantages de l'automatisation de la construction pour les projets de développement logiciel comprennent

  • Une condition préalable nécessaire pour une intégration continue et des tests continus
  • Améliorez la qualité des produits
  • Accélérez la compilation et le traitement des liens
  • Éliminez les tâches redondantes
  • Minimiser les "mauvaises constructions"
  • Éliminez les dépendances vis-à-vis du personnel clé
  • Avoir un historique des builds et des versions afin d'étudier les problèmes
  • Économisez du temps et de l'argent - pour les raisons énumérées ci-dessus.

Voir également

Les références