CI (Continuous Integration)
L'intégration continue est un ensemble de pratiques utilisées en génie
logiciel consistant à vérifier à chaque modification de code source que le
résultat des modifications ne produit pas de régression dans l'application développée.
Le concept a pour la première fois été mentionné par Grady Booch et se réfère généralement à la pratique de l'extreme programming.
Le principal but de cette pratique est de détecter les problèmes d'intégration au plus tôt lors du développement.
De plus, elle permet d'automatiser l'exécution des suites de tests et de voir l'évolution du développement du logiciel.
L'intégration continue est de plus en plus utilisée en entreprise afin d'améliorer la qualité du code et du produit final
CD (Continuous Delivery)
La livraison continue est une approche d'ingénierie logicielle dans laquelle les équipes produisent
des logiciels dans des cycles courts, ce qui permet de le mettre à disposition à n'importe quel moment.
Le but est de construire, tester et diffuser un logiciel plus rapidement.
L'approche aide à réduire le coût, le temps et les risques associés à la livraison de
changement en adoptant une approche plus incrémentale des modifications en production.
Un processus simple et répétable de déploiement est un élément clé.
DevOps
Le devops est un mouvement en ingénierie informatique et une pratique technique
visant à l'unification du développement logiciel (dev) et de l'administration
des infrastructures informatiques (ops), notamment l'administration système.
Apparu vers 2010, le mouvement Devops se caractérise principalement par la promotion de l'automation et du suivi (monitoring) de toutes les étapes
de la création d'un logiciel, depuis le développement, l'intégration, les tests, la livraison jusqu'au déploiement, l'exploitation et la maintenance
des infrastructures.
Les principes Devops soutiennent des cycles de développement plus courts, une augmentation de la fréquence des déploiements et
des livraisons continues, pour une meilleure atteinte des objectifs économiques de l'entreprise.
Team Fondation Server
Team Foundation Server (TFS) est une forge logicielle éditée par Microsoft permettant la gestion des sources,
la gestion des builds, le suivi des éléments de travail, la planification, la gestion de projet
et l'analyse des performances.
Il a pour but d'augmenter la productivité des développeurs, lesquels doivent utiliser
la suite Visual Studio Team System (VSTS) .
|
|
|
TeamCity
TeamCity est un serveur d'intégration continue basé sur Java de JetBrains.
Il a été publié pour la première fois le 2 octobre 2006.
TeamCity est un logiciel commercial licencié sous une licence propriétaire.
Une licence Freemium pour un maximum de 100 configurations de construction et 3 licences
d'agent de construction gratuites est disponible.
Les projets Open Source peuvent demander une licence gratuite.
|
|
|
- Gated Commits (empêche les développeurs de casser des sources dans un système de contrôle de version en exécutant la construction à distance pour les modifications locales avant la validation)
- Construire une grille. Permet d'exécuter simultanément plusieurs versions et tests sur différentes plates-formes et environnements
- Couverture de code intégrée , inspections et recherche de doublons
- Intégration aux IDE :
Eclipse
, IntelliJ IDEA
, Visual Studio
- Plateformes prises en charge:
Java
, .NET
et Ruby
Jenkins
Jenkins est un serveur d'automatisation open source écrit en Java.
Jenkins aide à automatiser la partie non humaine du processus de développement logiciel, grâce à l'intégration
continue et à la facilitation des aspects techniques de la livraison continue.
C'est un système basé sur un serveur qui s'exécute dans des conteneurs de servlets tels que Apache Tomcat .
Il prend en charge des outils de contrôle de version, notamment AccuRev , CVS ,
Subversion , Git , Mercurial , Perforce , TD/OMS , ClearCase.et RTC ,
et peut exécuter des projets basés sur Apache Ant , Apache Maven et sbt ,
ainsi que des scripts shell arbitraires et des commandes batch Windows.
|
|
|
Le créateur de
Jenkins
est Kohsuke Kawaguchi.
Publié sous licence MIT, Jenkins est un logiciel libre.
Les générations peuvent être déclenchées par divers moyens,
par exemple en effectuant une validation dans un système de contrôle de version,
en planifiant via un mécanisme semblable à celui de cron et en demandant une URL de construction spécifique .
Il peut également être déclenché une fois les autres générations de la file d'attente terminées. La fonctionnalité
Jenkins
peut être étendue avec des plugins.
Le projet
Jenkins
s'appelait à l'origine Hudson et a été renommé après un différend avec Oracle.
Son fork, Hudson, a continué à être développé par Oracle pendant un certain temps avant d'être offert à la Fondation Eclipse.
Hudson n'est plus maintenuet a été annoncé comme obsolète en février 2017.
AppVeyor
AppVeyor est un service d'intégration continue distribué et hébergé utilisé
pour créer et tester des projets hébergés sur GitHub et d'autres services d'hébergement
de code source (notamment GitLab et Bitbucket.org ) sur une machine virtuelle Microsoft Windows,
ainsi que sur des machines virtuelles Linux Ubuntu .
AppVeyor est configuré à l'aide d'une interface utilisateur Web ou en ajoutant un fichier nommé appveyor.yml ,
qui est un fichier texte au format YAML , au répertoire racine du référentiel de code.
Visual Studio Team Services (anciennement Visual Studio Online) inclut l'intégration AppVeyor .
|
|
|
Le 12 novembre 2014, Microsoft a publié de nombreuses parties de son
.NET Framework
en tant que source ouverte sur
GitHub
,
et l'intégration
AppVeyor
a été ajoutée à certains de ces référentiels.