Dans les systèmes d’intégration continue, chaque fois que du code est soumis, ou toutes les heures, une compilation du code source est automatiquement lancée. Cette approche vous permet de vérifier les fusions sur le serveur de gestion du code.
A partir de 4D v19, une nouvelle commande permet de lancer la compilation du code, afin de mettre en place ce type de système.
Lancer une compilation par programmation
Qu’est-ce que l’intégration continue ?
L’intégration continue consiste à vérifier, à chaque fois que le code source est modifié, que le résultat des modifications ne produit pas de régressions dans l’application développée. L’objectif principal est de détecter les problèmes d’intégration le plus tôt possible au cours du développement.
Nouvelle commande
La nouvelle commande Compile Project permet de compiler :
- le projet en cours
- un autre projet que le projet courant
Si la compilation est réussie, la commande renvoie un objet status avec une propriété de succès. Sinon, elle renvoie un objet status avec une liste d’erreurs.
Compiler le projet en cours
Compiler le projet en cours avec les paramètres par défaut est très simple :
var $status : Object
)
$status :=Compile project(
Vous pouvez également remplacer les options de compilation en passant un objet avec les nouvelles valeurs. Voici les options que vous pouvez remplacer :
- compilation cible
- inférence de type
- type par défaut pour les numériques ou les boutons
- générer des symboles
- génération de méthodes de typage
- composants à utiliser dans la compilation
Par exemple, chaque fois qu’un code est soumis sur le serveur de contrôle de la source, vous pouvez lancer un simple contrôle syntaxique pour vérifier le code fusionné.
var $options; $status: Object
$options :=New object()
$options .targets:=New collection()
$status :=Compile project($options)
Si votre application utilise des composants, vous devrez passer la liste des composants compilés dans l’objet options.
var $options; $status: Object
var $component : 4D.File
$options :=New object()
$options .components:=Folder("/PACKAGE/Components").files(fk recursive).query("extension = .4dz")
$status :=Compile project($options)
Compiler un autre projet
Il est possible de compiler une application à partir d’un autre projet. Il suffit de passer le fichier du projet à la commande :
var $file: 4D.File
$file :=Folder(fk documents folder).file("Databases/myApp/Project/myApp.4DProject")
$status :=Compile project($file)
Gestion des erreurs de compilation
La commande renvoie un objet d’état qui vous indique si la compilation a réussi ou non. Si la compilation échoue, 4D renvoie la collection de messages d’erreur, les méthodes impliquées et le numéro de ligne de l’erreur.
Ensuite, grâce au nouveau paramètre de la commande METHOD OPEN PATH vous pouvez ouvrir la méthode dans l’éditeur de code et placer le curseur sur la ligne d’erreur.
Par exemple, il est possible d’afficher la collection d’erreurs dans une boîte de liste et d’ajouter ensuite un bouton qui ouvre la méthode de l’erreur sélectionnée dans la liste :
METHOD OPEN PATH(Form.selected.code.path;Form.selected.line)
Restez à l’écoute ! Nous avons d’autres articles de blog sur l’intégration continue à venir !