Files
MoonPro.net/BranchConfSetup.md
Samuele E. Locatelli 19e55a411a typo note
2018-10-04 17:50:43 +02:00

62 lines
3.0 KiB
Markdown

# 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.
<!-- TOC -->
- [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)
<!-- /TOC -->
## 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)