3.0 KiB
Definizione configurazioni progetto
Il documento serve a definire come vada configurato il progetto ed il repo git per la gestione dell'intero ciclo CI/CD in modo che si possa compilare un processo di build gtramite Jenkinsfile coerente.
Scopo del documento
L'obiettivo è avere delel build adatte ai seguenti target
- Build per testing preliminare su workstation di sviluppo
- Build per staging locale (Ufficio) o remoto (cloud remoto)
- Build per installer cliente sul "canale stabile"
- Build per installer cliente sul "canale beta"
Tutto questo per semplificare le fasi di build, delivery, installaizone, configurazione e gestione (ordinaria e epr aggiornamento) dei programmi installati rpesso i vari clienti.
Configurazione GIT branches
Per tutto quanto definito sono necessari al minimo i seguenti branches git:
| Branch | Impiego |
|---|---|
| develop | pubblicazione versioni di sviluppo (NON ufficiali) dove fare convergere anche eventuali "mini branch per feature |
| master | versione principale di riferimento ed ufficiale del progetto, viene installata in ambiente test UFFICIO |
| stable | versione di riferimento ed ufficiale del progetto, da cui le installaizoni STABILI per i clienti |
| beta | ramo pubblicazione versione di testing non ufficiale x clienti selezionati o su cui vada provata una versione/funzionalità preliminare |
Configurazione Progetto
Il progetto per poter funzionare dovrà avere almeno questo set di configurazioni
| Configurazione | Impiego |
|---|---|
| Debug | Configurazione per debug LOCALE su workstation |
| Release | Configurazione per testing SENZA debug LOCALE su workstation o installazione su servers ufficio |
| Prod | Configurazione per INSTALL in produzione (con parametri standard del DB, che COMUNQUE vanno verificati con WinMerge) |
Le configurazioni speciali dei clienti vanno
- se possibile spostate sul DB in tab config
- se non possibile (es stringhe di connessione) in files .config esterni (e messi ove possibile in folder gerarchicamente superiori) per non doverle cambiare ad ogni install
Configurazione Jenkinsfile
Nel Jenkinsfile si vanno a d unire le due configurazioni per implementare la logica seguente (definita secondo branch di pubblicazione)
| Git Branch | Config | impiego |
|---|---|---|
| develop | Release | pubblicazione codice, testing compilazione, versione NON ufficiale |
| master | Release | pubblicazione codice, testing compilazione, installazione in ufficio |
| stable | Prod | pubblicazione codice, testing compilazione, produzione installer versione UFFICIALE e STABILE |
| beta | Prod | pubblicazione codice, testing compilazione, produzione installer versione di testing (beta) |