Author: Bob Jacobsen
Keywords: JMRI technical code Continuous Integration jenkins CVS

# JMRI: Intégration Continue

L'"Intégration Continue" est le procédé de reconstruction d'un système à chaque fois qu'il change, de sorte que vous découvrez rapidement les nouveaux problèmes et êtes motivés pour supprimer ceux existants

Le cœur de notre système est une série de tâche Jenkins qui construit d'une manière routinière le code, exécute les vérifications, et crée les installateurs téléchargeables. Cela signifie que nous pouvons et mettons très rapidement des changements dans nos mains d'utilisateurs.

Nous utilisons aussi deux machines CI pour tester chaque changement entré dans notre répertoire de code GitHub.

## Travis CI

Nous utilisons Travis CI pour faire l'intégration/test construits sur Linux pour chaque ajout dans nos répertoires GitHub

Travis normalement construit chaque branche qui contient un fichier .travis.yml. L'historique de construction pour le référentiel principal JMRI est à https://travis-ci.org/JMRI/JMRI.

Normalement Travis exécute les vérifications pour des fins de ligne valides, la vérification de caractères ASCII correctes, suivi par la construction du code et de l'exécution des tests de routine "AllTest". Un tampon d'écran ( pas un vrai écran ) est utilisé pour tous les tests GUI.

Vous pouvez ainsi activer Travis CI pour votre fourche (Référentiel GitHub personnelle). Après la fusion JMRI/master dans votre propre fourche, permettre à Travis CI de surveiller votre fourche, et il va commencer à tester votre prochaine sortie pour GitHub. Suivez les instructions sur Travis CI pour configurer vos fourches.

Vous pouvez empêcher un Travis CI de s'exécuter après un e soumission spécifique en incluant "[ci skip]" ( incluant les crochets mais pas les guillemets ) n'importe où dans le message de soumission si on le désire.

## Jenkins

JMRI utilise la machine d'intégration continue Jenkins pour l'intégration et les tests de constructions. Ceci inclut la conservation de notre site web à jour des changements qui sont soumis, de la construction de paquets d'installation depuis la construction en développpement, et de la construction des versions finales.

Notre machine Jenkins primaire est à https://builds.jmri.org/jenkins/, avec also known as à https://builds.jmri.org/jenkins/.

L'interêt des résultats spécifiques Jenkins

- La page Constructions montrant l'état des constructions fait après chaque série de soumissions. Les constructions réussies sont suivies par les constructions d'installateurs via la tâche Paquets
- La page SpotBugs montrant l'état du test le plus extensif SpotBugs fait périodiquement.Il y a aussi les pages des Plus récents changements et le Les résultats les plus récents.

  Pour avoir plus d'informations sur l'usage de SpotBugs par JMRI, voir la page séparée SpotBugs

### Intégration avec NetBeans

Si vous développez dans un environnement NetBeans 7.0 , il est possible d'intégrer les retour d'information dans la machine d'Intégration Continue Jenkins (CI).

Dans l'environnement NetBeans, il est fait référence la machine d'Intégration Continue Hudson - Jenkins est une "branche" du code Hudson et supporte le même API.

### Intégration

L'intégration dans NetBeans s'achève en exécutant les étapes suivantes:

1. Ouvrir NetBeans
2. Basculer sur la fenêtre "Services" (Raccourci clavier "Ctrl+5")
3. Clic-Droit (Ctrl-clic sur Mac) sur l'entrée "Constructeurs Hudson" et choisir "Add Hudson Instance..."
4. Dans la résultat déroulant, compléter les rubriques suivantes:
   Name
     JMRI
   URL
     https://builds.jmri.org/jenkins/
   Auto refresh every X minutes
     60 (changer la valeur de 5 par défaut pour éviter de surcharger le serveur CI)

à partir de maintenant, l'état actuel des constructions Jenkins peut être examiné dans la fenêtre "Services" en élargissant l'entrée "JMRI" sous "Hudson Builders".