Sobes.tech
Middle

GitLab CI yordamida bir nechta qurilish bosqichlari o'rtasida ma'lumotlarni qanday saqlash mumkin?

sobes.tech AI

AIdan javob

GitLab CI'da, ma'lumotlarni qurilish bosqichlari o'rtasida saqlash uchun artefaktlar ishlatiladi. Bu fayllar yoki kataloglar bir bosqichda yaratiladi va keyingi bosqichlarda mavjud bo'ladi.

.gitlab-ci.yml faylida konfiguratsiya quyidagicha ko'rinadi:

stages:
  - build
  - test
  - deploy

build_job:
  stage: build
  script:
    - echo "Qurilish natijasi" > build_output.txt # Fayl yaratish
  artifacts:
    paths: # Qaysi fayl yoki kataloglarni saqlash kerakligini ko'rsatish
      - build_output.txt
    expire_in: 1 week # Artefaktlarni saqlash muddati

test_job:
  stage: test
  script:
    - cat build_output.txt # Oldingi bosqichdagi faylga kirish
    - npm test
  needs: # Oldingi bosqichga bog'liqlikni ko'rsatish
    - build_job

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

Asosiy elementlar:

  • artifacts: Bosqich bajarilgandan so'ng qaysi fayl yoki kataloglar saqlanishi kerakligini belgilaydi.
  • paths: Artefakt bo'ladigan fayl yoki kataloglarning yo'llari ro'yxati.
  • expire_in: Artefaktlar qancha vaqt davomida mavjud bo'lishini belgilaydi.
  • needs: Hozirgi bosqichning oldingi bosqichga bo'lgan bog'liqligini aniq ko'rsatadi. GitLab CI avtomatik ravishda ko'rsatilgan bosqichlardan artefaktlarni yuklab oladi.

needs bo'lmasa, GitLab CI barcha oldingi bosqichlardan artefaktlarni yuklab oladi, bu samarali bo'lmasligi mumkin. needs yordamida bog'liqliklarni aniq belgilash, qaysi artefaktlar yuklab olinishini yanada aniqroq nazorat qilish imkonini beradi.

Shuningdek, cache'dan foydalanib, bog'liqliklarni saqlash mumkin, masalan, o'rnatilgan paketlar, lekin bu takroriy qurilmalarni tezlashtirish uchun mo'ljallangan, bosqichdan bosqichga natijalarni o'tkazish uchun emas. Artefaktlar, bosqichlar o'rtasida chiqish ma'lumotlarini o'tkazish uchun asosiy mexanizmdir.