Sobes.tech
Middle

Wie werden Versionsvariablen im Entwicklungsprozess verwendet? Wie werden sie erstellt und woher werden sie bezogen?

sobes.tech KI

Antwort von AI

Versionsvariablen werden verwendet, um einen bestimmten Zustand oder eine Version des Softwareprodukts zu identifizieren. Sie helfen dabei, Änderungen nachzuverfolgen, Releases zu verwalten und die Reproduzierbarkeit von Builds sicherzustellen.

Hauptanwendungsbereiche:

  • Build-Identifikation: Jedem Build wird eine eindeutige Kennung zugewiesen, die die Versionsnummer, den Commit-Hash, den Zeitstempel enthalten kann.
  • Verwaltung von Releases: Versionsvariablen ermöglichen eine klare Unterscheidung zwischen stabilen Releases, Beta-Versionen und nächtlichen Builds.
  • Rollback: Bei Problemen kann schnell auf eine funktionierende vorherige Version zurückgegriffen werden, indem man ihre Kennung verwendet.
  • Protokollierung und Überwachung: In Logs und Metriken wird die Version der Anwendung angegeben, was die Diagnose erleichtert.

Erstellung und Quellen:

  • Versionskontrollsysteme (Git, SVN):
    • Tags: Manuell oder automatisch erstellt, um bedeutende Punkte zu markieren (z.B. Releases).
    • Commit-Hash: Eindeutiger Bezeichner für jeden Commit.
  • CI/CD-Systeme (Jenkins, GitLab CI, GitHub Actions, CircleCI):
    • Vorgedefinierte Variablen: CI/CD-Systeme stellen Variablen bereit, die Informationen über den aktuellen Lauf enthalten (Build-Nummer, Branch, Commit-Hash).
    • Build-Skripte: Versionsvariablen können während des Builds durch Skripte generiert werden, basierend auf SCM- und CI/CD-Daten.
  • Automatische Versionsgeneratoren: Werkzeuge, die die Commit-Historie analysieren (z.B. basierend auf Conventional Commits) und automatisch semantische Versionsnummern (Major.Minor.Patch) generieren.
  • Konfigurationsdateien: Die Version kann in Projektkonfigurationsdateien festgelegt sein (z.B. package.json in Node.js, pom.xml in Maven).

Beispiele:

# Erhalte den Hash des letzten Commits in Git
git rev-parse HEAD
// Jenkins-Pipeline - Erhalte die Build-Nummer aus einer vordefinierten Variablen
println "Build-Nummer: ${env.BUILD_NUMBER}"
# GitLab CI - Erhalte Branch und Commit-Hash
# aus vordefinierten Variablen
variablen:
  GIT_BRANCH: $CI_COMMIT_BRANCH
  GIT_COMMIT: $CI_COMMIT_SHA

Versionsvariablen werden in den Build- und Deployment-Prozess integriert durch:

  • Umgebungsvariablen: CI/CD-Systeme exportieren Informationen als Umgebungsvariablen.
  • Kommandozeilenargumente: Werden an Build-Skripte übergeben.
  • Konfigurationsdateien: Werden von Build-Tools gelesen.
  • Plugins und Erweiterungen: Build-Tools und CI/CD-Systeme verfügen über Plugins zur Integration mit SCM und zur automatischen Erfassung von Versionsinformationen.