Nei sistemi di integrazione continua, ogni volta che viene inviato del codice, o su base oraria, viene avviata automaticamente una compilazione del codice sorgente. Questo approccio consente di controllare le fusioni sul server di gestione del codice.
A partire da 4D v19, un nuovo comando consente di lanciare la compilazione del codice, in modo da poter impostare questo tipo di sistema.
Avviare una compilazione tramite programmazione
Che cos’è l’integrazione continua?
L’integrazione continua consiste nel verificare, ogni volta che si modifica il codice sorgente, che il risultato delle modifiche non produca regressioni nell’applicazione sviluppata. L’obiettivo principale è quello di rilevare i problemi di integrazione il più presto possibile durante lo sviluppo.
Nuovo comando
Il nuovo comando Compile Project permette di compilare:
- il progetto corrente
- un progetto diverso da quello corrente
Se la compilazione ha successo, il comando restituisce un oggetto status con una proprietà success. Altrimenti, restituisce un oggetto status con un elenco di errori.
Compilazione del progetto corrente
La compilazione del progetto corrente con le impostazioni predefinite è molto semplice:
var $status : Object
)
$status :=Compile project(
È anche possibile sovrascrivere le opzioni di compilazione, passando un oggetto con i nuovi valori. Ecco le opzioni che si possono sovrascrivere:
- target di compilazione
- inferenza del tipo
- tipo predefinito per i numeri o i pulsanti
- generare simboli
- generare metodi di digitazione
- componenti da utilizzare nella compilazione
Ad esempio, ogni volta che il codice viene inviato sul server di controllo sorgente, si può lanciare un semplice controllo della sintassi per verificare il codice unito.
var $options; $status: Object
$options :=New object()
$options .targets:=New collection()
$status :=Compile project($options)
Se la vostra applicazione utilizza dei componenti, dovrete passare l’elenco dei componenti compilati nell’oggetto options.
var $options; $status: Object
var $component : 4D.File
$options :=New object()
$options .components:=Folder("/PACKAGE/Components").files(fk recursive).query("estensione = .4dz")
$status :=Compile project($options)
Compilazione di un altro progetto
È possibile compilare un’applicazione da un altro progetto. Basta passare il file del progetto al comando:
var $file: 4D.File
$file :=Folder(fk documents folder).file("Database/myApp/Progetto/myApp.4DProject")
$status :=Compile project($file)
Gestione degli errori di compilazione
Il comando restituisce un oggetto di stato che indica se la compilazione è riuscita o meno. Se la compilazione fallisce, 4D restituisce l’insieme dei messaggi di errore, i metodi coinvolti e il numero di riga dell’errore.
Poi, grazie al nuovo parametro del comando METHOD OPEN PATH è possibile aprire il metodo nell’editor di codice e posizionare il cursore sulla riga di errore.
Ad esempio, è possibile visualizzare la raccolta di errori in una casella di riepilogo e poi aggiungere un pulsante che apre il metodo dell’errore selezionato nell’elenco:
METHOD OPEN PATH(Form.selected.code.path;Form.selected.line)
Restate sintonizzati! Sono in arrivo altri post sull’integrazione continua!