Gestione centralizzata del codice e promozione in produzione
Sono due i principali compiti che GitLab assolve nell’infrastruttura.
- Repository del codice sorgente
- Continous Integration pipeline per produzione software

Repository
Il repository è di tipo GIT.
- Velocità di aggiornamento.
- Storico modifiche per ogni utente.
- Lavorazione contemporanea su più versioni (branch).
- Accesso SSH o HTTP.
Gitlab fornisce una interfaccia web per le operazioni.
- Gestione utenti
- Creazione/cancellazione di gruppi
- Assegnazione per gruppo/singolo utente di permessi per singolo repository
- Gestione repository
- Creazione/cancellazione repository
- Modifica contenuti con editor integrato
- Avvio manuale pipeline
Continous Integration
Una pipeline è una serie di comandi da eseguire associati ad un repository.
- Le operazioni avvengono all’interno di runner, all’interno di container monouso.
- Scalabilità totale mediante l’aggiunta di runner.
- Parallelizzazione dell’esecuzione delle pipeline.
- Distribuzione del carico.
Il processo di pipeline è diviso in fasi, ciascuna delle quali può impattare la costruzione della build. Il tipico workflow comprende fasi ben definite.
- La modifica del codice (commit) innesca la pipeline
- Sono disponibili parametri d’ambiente, come il branch o il commit stesso
- Viene prodotto il software tramite i comandi della pipeline all’interno del container dedicato
- Il container può essere specificamente calibrato per il software da produrre e risiedere su un repository interno (come Nexus)
- Il software prodotto viene validato(mediante un container)
- Analisi statica del codice
- Test di funzionamento
- Test di integrazione
- Test di non regressione
- Il prodotto è pubblicato(mediante un container)
- L’artifact prodotto è caricato su un repository
- Possibilità di attivazione notifiche
- Possibilità di attivazione di altri meccanismi di deploy automatico