Sobes.tech
Middle

Kako se koriste promenljive verzije u procesu razvoja? Kako se one kreiraju i odakle se preuzimaju?

sobes.tech АИ

Одговор од АИ

Varijable verzije se koriste za identifikaciju određenog stanja ili izdanja softverskog proizvoda. One pomažu u praćenju promena, upravljanju izdanjima i obezbeđivanju reproduktivnosti buildova.

Osnovni načini korišćenja:

  • Identifikacija builda: Svakom build-u se dodeljuje jedinstveni identifikator, koji može uključivati broj verzije, hash commita, timestamp.
  • Upravljanje izdanjima: Varijable verzije omogućavaju jasno razdvajanje stabilnih izdanja, beta verzija i noćnih buildova.
  • Vraćanje: Pri pojavi problema, može se brzo vratiti na prethodnu radnu verziju koristeći njen identifikator.
  • Logovanje i monitoring: U logovima i metrima se navodi verzija aplikacije, što olakšava dijagnostiku.

Kreiranje i izvori:

  • Sistemi kontrole verzija (Git, SVN):
    • Tagovi: Kreiraju se ručno ili automatski za označavanje značajnih tačaka (npr. izdanja).
    • Hash commita: Jedinstveni identifikator svakog commita.
  • CI/CD sistemi (Jenkins, GitLab CI, GitHub Actions, CircleCI):
    • Predefinisane promenljive: Sistemi CI/CD pružaju promenljive koje sadrže informacije o trenutnom pokretanju (broj builda, grana, hash commita).
    • Skripte za build: Varijable verzije mogu biti generisane skriptama tokom build procesa na osnovu podataka iz SCM i CI/CD.
  • Automatski generatori verzija: Alati koji analiziraju istoriju commitova (npr. na osnovu Conventional Commits) i automatski generišu semantičke brojeve verzija (Major.Minor.Patch).
  • Konfiguracioni fajlovi: Verzija može biti navedena u konfiguracionim fajlovima projekta (npr. package.json u Node.js, pom.xml u Maven).

Primeri:

# Dobijanje hash-a poslednjeg commita u Git
git rev-parse HEAD
// Jenkins Pipeline - dobijanje broja builda iz predefinisane promenljive
println "Build Number: ${env.BUILD_NUMBER}"
# GitLab CI - dobijanje grane i hasha commita
# iz predefinisanih promenljivih
variables:
  GIT_BRANCH: $CI_COMMIT_BRANCH
  GIT_COMMIT: $CI_COMMIT_SHA

Varijable verzije se povlače u proces builda i deploy-a putem:

  • Promenljivih okruženja: CI/CD sistemi eksportuju informacije kao promenljive okruženja.
  • Argumenta komandne linije: Prosleđuju se u skripte za build.
  • Konfiguracionih fajlova: Čitaju se od strane alata za build.
  • Plugina i proširenja: Alati za build i CI/CD sistemi imaju plugine za integraciju sa SCM i automatsko dobijanje informacija o verziji.