Middle
როგორ გამოიყენება ვერსიის ცვლადები განვითარების პროცესში? როგორ იქმნება და საიდან იღებენ მათ?
sobes.tech AI
პასუხი AI-სგან
ვერსიის ცვლილებები გამოიყენება კონკრეტული მდგომარეობის ან გამოცემის იდენტიფიკაციისთვის. ისინი ეხმარებიან ცვლილებების თვალსაზრისით, გამოცემების მართვაში და ბილდების გამეორებადობის უზრუნველყოფაში.
ძირითადი გამოყენების გზები:
- შენახვის იდენტიფიკაცია: თითოეულ შენახვას მიენიჭება უნიკალური იდენტიფიკატორი, რომელიც შეიძლება შეიცავდეს ვერსიის ნომერს, კომიტის ჰეშს, დროის ნიშნულს.
- გამოშვების მართვა: ვერსიის ცვლილებები საშუალებას აძლევს მკაფიოდ განასხვავოს სტაბილური გამოცემები, ბეტა ვერსიები და ღამის ბილდები.
- გადატვირთვა: პრობლემების შემთხვევაში შეიძლება სწრაფად დაბრუნდეთ წინანდელ სამუშაო ვერსიაზე მისი იდენტიფიკატორის გამოყენებით.
- ლოგირება და მონიტორინგი: ლოგებში და მეტრიკებში მითითებულია აპლიკაციის ვერსია, რაც ამარტივებს დიაგნოსტიკას.
შექმნა და წყაროები:
- ვერსიის კონტროლის სისტემები (Git, SVN):
- ტეგები: შექმნილია ხელით ან ავტომატურად მნიშვნელოვანი წერტილების აღსანიშნავად (მაგ., გამოცემები).
- კომიტის ჰეში: უნიკალური იდენტიფიკატორი თითოეული კომიტისთვის.
- CI/CD სისტემები (Jenkins, GitLab CI, GitHub Actions, CircleCI):
- წინასწარ განსაზღვრული ცვლილებები: სისტემები უზრუნველყოფენ ცვლილებებს, რომლებიც შეიცავს ინფორმაციას მიმდინარე გაშვებაზე (შენახვის ნომერი, ფილიალი, ჰეში).
- შენახვის სკრიპტები: ვერსიის ცვლილებები შეიძლება გენერირდეს სკრიპტებით მშენებლობის პროცესში SCM და CI/CD მონაცემებზე დაყრდნობით.
- ავტომატური ვერსიის გენერატორები: ხელსაწყოები, რომლებიც ანალიზირებენ კომიტების ისტორიას (მაგ., Conventional Commits-ის საფუძველზე) და ავტომატურად ქმნიან სემანტიკურ ნომრებს (Major.Minor.Patch).
- კონფიგურაციის ფაილები: ვერსია შეიძლება მითითებული იყოს პროექტის კონფიგურაციის ფაილებში (მაგ.,
package.jsonNode.js-ში,pom.xmlMaven-ში).
მაგალითები:
# Git-ში ბოლო კომიტის ჰეშის მიღება
git rev-parse HEAD
// Jenkins Pipeline - მშენებლობის ნომრის მიღება წინასწარ განსაზღვრული ცვლილებისგან
println "Build Number: ${env.BUILD_NUMBER}"
# GitLab CI - ფილიალის და კომიტის ჰეშის მიღება
# წინასწარ განსაზღვრული ცვლილებებიდან
variables:
GIT_BRANCH: $CI_COMMIT_BRANCH
GIT_COMMIT: $CI_COMMIT_SHA
ვერსიის ცვლილებები მიიღება მშენებლობის და განთავსების პროცესში:
- გარემოს ცვლილებები: CI/CD სისტემები ექსპორტირებენ ინფორმაციას გარემოს ცვლილებებად.
- კომანდის ხაზის არგუმენტები: გადაეცემა მშენებლობის სკრიპტებს.
- კონფიგურაციის ფაილები: იკითხება მშენებლობის ინსტრუმენტების მიერ.
- პლაგინები და გაფართოებები: მშენებლობის ინსტრუმენტები და CI/CD სისტემები აქვთ პლაგინები SCM-თან ინტეგრაციისა და ავტომატური ვერსიის ინფორმაციის მიღებისთვის.