როგორ გამოვიყენოთ 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-ის გამოყენება დამოკიდებულებების შენახვისთვის, მაგალითად, ინსტალირებული პაკეტებისთვის, მაგრამ ეს განკუთვნილია განმეორებითი მშენებლობების სიჩქარის გასაზრდელად, არა შედეგების გადაცემისთვის ერთ ეტაპიდან მეორეზე. არტეფაქტები — ძირითადი მექანიზმია შედეგების გადაცემისთვის ეტაპებს შორის.