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

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)