62 lines
3.0 KiB
Markdown
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) |