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