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.jsonu Node.js,pom.xmlu 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.