Versionierung & Build

Professionelle Projekte erfordern eine zuverlässige Versionskontrolle und einen standardisierten Build-Prozess.
Lino verwendet Semantic Versioning (SemVer) zur Verwaltung der Versionen jedes Dienstes und stellt Befehle zum Erstellen von Docker-Images bereit, die bereits nach der aktuellen Service-Version benannt sind.

Service-Versionierung

Jeder Dienst in Lino verfügt über eine unabhängige Versionierung, sodass sie sich in unterschiedlichen Geschwindigkeiten entwickeln können, ohne globale Synchronisation zu benötigen.

SemVer-Standard

MAJOR.MINOR.PATCH
  • MAJOR → inkompatible Änderungen (breaking changes).
  • MINOR → neue, kompatible Funktionen.
  • PATCH → Fehlerbehebungen und interne Verbesserungen.

Beispiele:
1.0.0 → erste stabile Version.
1.1.0 → neue Endpunkte hinzugefügt, ohne die Kompatibilität zu brechen.
2.0.0 → Änderungen, die ein Update der Clients erfordern.

lino version Befehl

Das CLI bietet native Unterstützung für das Hochzählen von Versionen:

lino version bump

Der interaktive Assistent führt Sie durch die Auswahl der Art der Erhöhung (major, minor, patch) und aktualisiert automatisch die Service-Konfigurationsdatei mit der neuen Version.

Jede Ausführung aktualisiert das Service-Versionsmanifest und stellt sicher:

  • Klare Nachverfolgung von Änderungen.
  • Konsistenz mit Release-Praktiken.
  • Abstimmung mit CI/CD-Pipelines.

Docker-Image-Build

Lino erstellt automatisch Docker-Images für jede Version eines Dienstes oder einer Webanwendung und eliminiert damit manuelle Aufgaben.

Namenskonvention:

projekt-name/services/service-name : major.minor.patch

Die Images können in jedem Registry veröffentlicht werden:

  • Docker Hub
  • GitHub Container Registry
  • AWS ECR
  • Azure Container Registry
  • oder jedes andere kompatible Repository.

lino build Befehl

Um Docker-Images zu erstellen und zu bauen, führen Sie einfach aus:

lino build

Was in diesem Prozess passiert:
1. Der Code des Dienstes und/oder der Webanwendung wird kompiliert.
2. Die notwendigen Konfigurationen (Connection Strings, Secrets, Umgebungsvariablen) werden angewendet.
3. Ein Docker-Image wird basierend auf der aktuellen SemVer-Version erzeugt.
4. Das Image erhält standardisierte Namen und Tags.

Dieser Prozess gewährleistet konsistente und reproduzierbare Builds, reduziert Fehler in Produktionsumgebungen und beschleunigt das Deployment in CI/CD-Pipelines.

So kombiniert Lino unabhängige Service-Versionierung mit einem automatisierten Build-Prozess und liefert Release-Governance sowie zuverlässige Verteilung in jeder Umgebung.

Ein unbehandelter Fehler ist aufgetreten. Aktualisieren 🗙