Doc gestione branch/config

This commit is contained in:
Samuele E. Locatelli
2018-10-04 16:00:24 +02:00
parent 95411ebe6d
commit 0cdf7c643a
2 changed files with 62 additions and 0 deletions
+62
View File
@@ -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.
<!-- 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)
Binary file not shown.