Table des matières

Développement d'ADH5

Tests

Il faut absolument lancer les tests en local avant de push vos commits sur la branche master. Pour cela, il suffit de lancer les tests depuis le script scripts/test.sh à la racine du projet. Tout push (changement de release sur le dépôt git) entraîne la construction de la pipeline dev (nouvelle version d'ADH5-dev).

Rspec

Rspec permet de définir des tests unitaires.

Les fichiers utilisés par rspec sont dans le répertoire frontend/spec. Les tests présents actuellement ne sont pas suffisants, il faudrait en écrire d'autres.

Cucumber

Cucumber permet de définir des tests de comportement, comprendre comportement d'un utilisateur sur le site.

Les fichiers utilisés par cucumber sont dans le répertoire frontend/features

L'exemple ci-dessous est plutôt explicite.

Scénario: L'adhérent quitte sa chambre

  Soit un utilisateur ayant les droits 1337
  Soit le vlan dual stack 41 avec les adresses IPv4 157.159.41.0/24 et les adresses IPv6 2001:660:3203:430::/64
  Soit un adhérent ayant la chambre 1005 dans le vlan 41
    Et une date de départ dans 1 an
    Et un ordinateur avec pour mac 00-11-22-33-44-55
      Et pour ipv4 157.159.41.10
      Et pour ipv6 2001:660:3203:430::a10
  Quand l'utilisateur s'identifie
    Et entre le login de l'adhérent
    Et clique sur Rechercher
    Et clique sur Aucune chambre
  Alors il voit une ligne avec 00-11-22-33-44-55 En attente En attente
    Et il voit une ligne avec Changement de chambre 1005 vers aucune

Pour comprendre ce fichier, cucumber a besoin de steps qui permettent de programmer les différentes actions. Les steps permettent grâce à l'écriture de REGEX d'appeler des méthodes sur des objets définis avec des mots en français.

Vous pouvez accéder à ADH5-dev (derrière le vpn) à l'adresse suivante : ADH5-dev. Il faut tester toutes les nouvelles fonctionnalités dans cet environnement avant de déployer en production.

Git

La branche master est la branche de développement, elle correspond à la version d'ADH5-dev.

Pour passer tous les commits en développement vers la production, il faut juste bouger le pointeur de production vers master. Ce n'est pas un merge !

  
  git branch -f production master

Puis pusher votre branche production sur origin/production

Déployer

Le déploiement se fait via Jenkins, accessible (derrière le VPN) ici. Il y a deux pipelines regroupant chacune une série de tasks, une pour la dev et une pour la prod. La pipeline dev s'enclenche automatiquement lors de changements de version suite à un push de votre branche master sur origin/master.

Contrairement au déploiement d'ADH5-dev, le déploiement en production se fait manuellement, souvent pendant une maintenance (car cela entraîne une coupure des services dépendant d'ADH5 : Radius, DHCP, etc).

En cas de problèmes, penser à consulter la FAQ et à la compléter.

Mettre à jour les fabricants de cartes réseau (Apple)

$ wget https://raw.github.com/inetlms/lms/master/lib/ethercodes.txt
$ grep "Apple" ethercodes.txt | sed 's/:/,/' > /frontend/db/vendors.txt