Sobes.tech
Middle

როგორ გამოიყენება ვერსიის ცვლადები განვითარების პროცესში? როგორ იქმნება და საიდან იღებენ მათ?

sobes.tech AI

პასუხი AI-სგან

ვერსიის ცვლილებები გამოიყენება კონკრეტული მდგომარეობის ან გამოცემის იდენტიფიკაციისთვის. ისინი ეხმარებიან ცვლილებების თვალსაზრისით, გამოცემების მართვაში და ბილდების გამეორებადობის უზრუნველყოფაში.

ძირითადი გამოყენების გზები:

  • შენახვის იდენტიფიკაცია: თითოეულ შენახვას მიენიჭება უნიკალური იდენტიფიკატორი, რომელიც შეიძლება შეიცავდეს ვერსიის ნომერს, კომიტის ჰეშს, დროის ნიშნულს.
  • გამოშვების მართვა: ვერსიის ცვლილებები საშუალებას აძლევს მკაფიოდ განასხვავოს სტაბილური გამოცემები, ბეტა ვერსიები და ღამის ბილდები.
  • გადატვირთვა: პრობლემების შემთხვევაში შეიძლება სწრაფად დაბრუნდეთ წინანდელ სამუშაო ვერსიაზე მისი იდენტიფიკატორის გამოყენებით.
  • ლოგირება და მონიტორინგი: ლოგებში და მეტრიკებში მითითებულია აპლიკაციის ვერსია, რაც ამარტივებს დიაგნოსტიკას.

შექმნა და წყაროები:

  • ვერსიის კონტროლის სისტემები (Git, SVN):
    • ტეგები: შექმნილია ხელით ან ავტომატურად მნიშვნელოვანი წერტილების აღსანიშნავად (მაგ., გამოცემები).
    • კომიტის ჰეში: უნიკალური იდენტიფიკატორი თითოეული კომიტისთვის.
  • CI/CD სისტემები (Jenkins, GitLab CI, GitHub Actions, CircleCI):
    • წინასწარ განსაზღვრული ცვლილებები: სისტემები უზრუნველყოფენ ცვლილებებს, რომლებიც შეიცავს ინფორმაციას მიმდინარე გაშვებაზე (შენახვის ნომერი, ფილიალი, ჰეში).
    • შენახვის სკრიპტები: ვერსიის ცვლილებები შეიძლება გენერირდეს სკრიპტებით მშენებლობის პროცესში SCM და CI/CD მონაცემებზე დაყრდნობით.
  • ავტომატური ვერსიის გენერატორები: ხელსაწყოები, რომლებიც ანალიზირებენ კომიტების ისტორიას (მაგ., Conventional Commits-ის საფუძველზე) და ავტომატურად ქმნიან სემანტიკურ ნომრებს (Major.Minor.Patch).
  • კონფიგურაციის ფაილები: ვერსია შეიძლება მითითებული იყოს პროექტის კონფიგურაციის ფაილებში (მაგ., package.json Node.js-ში, pom.xml Maven-ში).

მაგალითები:

# 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-თან ინტეგრაციისა და ავტომატური ვერსიის ინფორმაციის მიღებისთვის.