diff --git a/BranchConfSetup.md b/BranchConfSetup.md new file mode 100644 index 00000000..3d0cc985 --- /dev/null +++ b/BranchConfSetup.md @@ -0,0 +1,62 @@ +# 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. + + + +- [Definizione configurazioni progetto](#definizione-configurazioni-progetto) + - [Scopo del documento](#scopo-del-documento) + - [Configurazione GIT branches](#configurazione-git-branches) + - [Configurazione Progetto](#configurazione-progetto) + - [Configurazione Jenkinsfile](#configurazione-jenkinsfile) + + + +## 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) \ No newline at end of file diff --git a/BranchConfSetup.pdf b/BranchConfSetup.pdf new file mode 100644 index 00000000..4a38862a Binary files /dev/null and b/BranchConfSetup.pdf differ