Versionamento & Build

I progetti professionali richiedono un controllo delle versioni affidabile e un processo di build standardizzato.
Lino adotta Semantic Versioning (SemVer) per gestire le versioni di ogni servizio e fornisce comandi per generare immagini Docker già denominate in base alla versione attiva del servizio.

Versionamento dei Servizi

Ogni servizio in Lino ha un versionamento indipendente, permettendo loro di evolvere a ritmi differenti senza richiedere una sincronizzazione globale.

Standard SemVer

MAJOR.MINOR.PATCH
  • MAJOR → cambiamenti incompatibili (breaking changes).
  • MINOR → nuove funzionalità compatibili.
  • PATCH → correzioni di bug e miglioramenti interni.

Esempi:
1.0.0 → prima versione stabile.
1.1.0 → nuovi endpoint aggiunti senza rompere la compatibilità.
2.0.0 → modifiche che richiedono l’aggiornamento dei client.

Comando lino version

Il CLI offre supporto nativo per l’incremento delle versioni:

lino version bump

La procedura guidata interattiva ti guiderà nella scelta del tipo di incremento (major, minor, patch) e aggiornerà automaticamente il file di configurazione del servizio con la nuova versione.

Ogni esecuzione aggiorna il manifesto della versione del servizio, garantendo:

  • Tracciamento chiaro delle modifiche.
  • Coerenza con le pratiche di rilascio.
  • Allineamento con le pipeline CI/CD.

Build di immagini Docker

Lino genera automaticamente immagini Docker per ogni versione di servizio o applicazione web, eliminando attività manuali.

Convenzione di denominazione:

nome-progetto/services/nome-servizio : major.minor.patch

Le immagini possono essere pubblicate su qualsiasi registry:

  • Docker Hub
  • GitHub Container Registry
  • AWS ECR
  • Azure Container Registry
  • o qualsiasi altro repository compatibile.

Comando lino build

Per compilare e generare immagini Docker, basta eseguire:

lino build

Cosa succede in questo processo:
1. Il codice del servizio e/o dell'applicazione web viene compilato.
2. Vengono applicate le configurazioni necessarie (connection strings, secrets, variabili d'ambiente).
3. Viene generata un'immagine Docker basata sulla versione SemVer attuale.
4. L'immagine riceve un nome e un tag standardizzati.

Questo processo garantisce build consistenti e riproducibili, riducendo errori negli ambienti di produzione e accelerando il deploy nelle pipeline CI/CD.

In questo modo, Lino combina versionamento indipendente per servizio con un processo di build automatizzato, offrendo governance dei release e distribuzione affidabile in qualsiasi ambiente.

Si è verificato un errore non gestito. Ricarica 🗙