Sobes.tech
Middle

როგორ გამოვიყენოთ GitLab CI მონაცემების შენახვა რამდენიმე მშენებლობის ეტაპის განმავლობაში?

sobes.tech AI

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

GitLab CI-ში მონაცემების შენახვა ხდება არტეფაქტების გამოყენებით. ეს ფაილები ან დირექტორიები არიან, რომლებიც ერთ ეტაპზე იქმნება და შემდეგ ეტაპებზე ხელმისაწვდომია.

.gitlab-ci.yml კონფიგურაცია გამოიყურება ასე:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "შენახვის შედეგი" > build_output.txt # ფაილის შექმნა
  artifacts:
    paths: # რომელ ფაილებს/დირექტორიებს უნდა შეინახოს
      - build_output.txt
    expire_in: 1 week # არტეფაქტების შენახვის ვადა

test_job:
  stage: test
  script:
    - cat build_output.txt # წვდომა ფაილზე წინამორბედ ეტაპიდან
    - npm test
  needs: # დამოკიდებულების მითითება წინამორბედ ეტაპზე
    - build_job

deploy_job:
  stage: deploy
  script:
    - deploy_script.sh
  needs:
    - test_job

ძირითადი ელემენტები:

  • artifacts: განსაზღვრავს, რომელი ფაილები ან დირექტორიები უნდა შეინახოს ეტაპის დასრულების შემდეგ.
  • paths: ფაილების ან დირექტორიების გზების სია, რომლებიც არტეფაქტებად იქცევა.
  • expire_in: განსაზღვრავს, რამდენი ხნის განმავლობაში იქნება ხელმისაწვდომი არტეფაქტები.
  • needs: ცხადად მიუთითებს მიმდინარე ეტაპის დამოკიდებულებას წინამორბედზე. GitLab CI ავტომატურად ჩამოტვირთავს მითითებულ ეტაპების არტეფაქტებს მიმდინარე შესრულებამდე.

needs-ის გარეშე, GitLab CI ჩამოტვირთავს ყველა წინამორბედ ეტაპზე არსებულ არტეფაქტებს იგივე ან ადრეულ ეტაპზე, რაც შეიძლება იყოს არასასურველი. დამოკიდებულებების ცხადი მითითება needs-ით უფრო ზუსტი კონტროლს უზრუნველყოფს, თუ რომელი არტეფაქტები იწერება.

ასევე, შესაძლებელია cache-ის გამოყენება დამოკიდებულებების შენახვისთვის, მაგალითად, ინსტალირებული პაკეტებისთვის, მაგრამ ეს განკუთვნილია განმეორებითი მშენებლობების სიჩქარის გასაზრდელად, არა შედეგების გადაცემისთვის ერთ ეტაპიდან მეორეზე. არტეფაქტები — ძირითადი მექანიზმია შედეგების გადაცემისთვის ეტაპებს შორის.