Compilation de Metafor via ''comp.py''
Afin d'automatiser la compilation de Metafor ainsi que l'exécution de la batterie, Romain a mis au point un script comp.py
permettant un ensemble de cas de figure:
- la récupération des sources,
- la génération des Makefiles,
- la compilation proprement-dite,
- l'exécution de la batterie,
- l'envoi de mail récapitulatif de chaque étape,
- …
Le script se trouve dans le système de configuration des stations ''linuxbin''.
Utilisation du script
Le lancement du script se fait simplement en appelant celui-ci (comp.py
) à partir du répertoire qui va accueillir les développements.
Le premier accueil ressemble au menu ci-dessous :
Actions: a/ e-mail address (reports) : 'papeleux' c/ build options : 'blueberry.cmake' f/ debug mode : False h/ nice value : '0' j/ nb of task launched in parallel : '4' k/ nb of threads by task : '1' m/ Run Method : 'batch' 1/ source : 'checkout' 2/ compile : True 3/ battery : True 4/ installer : False G/ GO S/ SAVE Q/ QUIT Your choice?
Tapant la lettre ou le chiffre devant chaque action/option permet de configurer les actions à lancer ainsi que les options associées.
Dans un premier temps, vérifiez votre adresse e-mail (par défaut les mails sont envoyés sur votre compte sur la machine linux et si vous avez correctement configuré votre .forward
, vous sera redirigé vers votre mail ULg).
Dans un second temps, configurer les actions:
1
: source- 'checkout': la version officielle des sources va être récupérée sur blueberry (votre compte doit être configuré pour accéder à blueberry sans mot de passe)
- 'zip' : les sources sont dans un fichier .zip (que vous pourrez choisir via le menu)
- 'present' : les sources sont présentes dans le répertoire local (
oo_meta
etoo_nda
) - ATTENTION à l'exception des sources 'present', les éventuels répertoires
oo_meta
,oo_nda
,oo_metaB
sont dans un premier temps supprimés!
2
: compile:- True: va compiler les sources (ATTENTION TOUT LE REPERTOIRE
oo_metaB
va être supprimé) - False: ne va pas compiler Metafor
3
: battery:- True : execute la batterie après nettoyage des résultats antérieurs
- 'Continue' : execute la batterie sans nettoyage (execute les tests non executés précédemment ou ceux modifiés)
- False: n'execute pas la batterie
4
: Installer:- True: execute
make install
- False: ne fait rien
Enfin, configurer les options: Principalement
b
: 'archive name' : nom du .zip (si sources en zip)h
: 'nice value' : priorité des process sur la machine (0 : priorité maximale - 19 : priorité la plus basse)j
: 'nb of task launched in parallel' : nombre 'n' de fichiers compilés en même temps (make -j n
) et de tests executé en parallèle par la batterie (battery.py -j n
).m
: 'Run Method' :- 'interactif' : execution dans la console
- 'batch' : execution détachée (stations)
- 'sge' : execution via 'sun grid engine' sur le cluster