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.
