Middle
GitLab CI-деги тапшырма (иш) мүнөздөмөлөрү катары артефакттар менен кэштин айырмачылыктары эмнеде?
sobes.tech AI
AIден жооп
Артефакттар жана кэш GitLab CIда куруу жана тестирлөөнү тездетүү үчүн кызмат кылат, бирок алардын ар башка функциялары жана максаттары бар.
Артефакттар (artifacts):
- Максат: Тапшырманын (куруу, тесттер, документация жана башка) жыйынтыктарын сактоо кийинки колдонуу же көрүү үчүн. Аларды кол менен жүктөп алууга болот же веб-интерфейс аркылуу жеткиликтүү.
- Өмүрү:
.gitlab-ci.ymlконфигурациясында аныкталган. Алар белгиленген убакыттан кийин өчүрүлүшү мүмкүн же сакталат. - Өлчөмү: Адатта чоңураак, анткени даяр курулгандар, отчеттор жана башка натыйжалар камтылган.
- Колдонуу: Натыйжаларды ар кандай этаптардагы тапшырмалар арасында өткөрүү же колдонуучуларга көрсөтүү.
Конфигурациянын мисалы:
artifacts:
paths: # файлдар жана каталогдорго жолдор, алар артефактка айланат
- build/
- test-results.xml
expire_in: 1 апта # артефакттардын өмүрү
Кэш (cache):
- Максат: Проекттин көзкарандылыктарын же аралык натыйжаларды сактоо, кийинки иштетүүлөрдү тездетүү үчүн. Кэш белгилүү бир тармакка же теги менен байланышкан (конфигурацияланат).
- Өмүрү: Автоматтык түрдө GitLab тарабынан башкарылат. Эски жазуулар кэш өчүрүлөт, эгер квота ашылса же мөөнөт өтсө.
- Өлчөмү: Адатта кэштен кичирээк, анткени ал Maven репозиторийлери, npm пакеттер жана башка көзкарандылыктарды камтыйт.
- Колдонуу: көзкарандылыктарды орнотууну тездетүү жана куруу убактысын кыскартуу.
Конфигурациянын мисалы:
cache:
paths: # кэшке салынган каталогдорго жолдор
- node_modules/
- ~/.m2/repository/
key: # кэш ачкычы, алдын ала аныкталган өзгөрмөлөрдү колдонсо болот
files:
- package-lock.json # бул файл өзгөрсө, кэш жаңыланат
prefix: ${CI_COMMIT_REF_SLUG} # тармактын/тамгинин аты менен префикс кошот
Негизги айырмачылыктар:
| Өзгөчөлүк | Артефакттар (artifacts) | Кэш (cache) |
|---|---|---|
| Максат | Натыйжаларды сактоо | Көзкарандылыктарды сактоо үчүн тездетүү |
| Колдонуу | Жүктөө, тапшырмалар арасында өткөрүү (түрдүү этаптарда) | Автоматтык кайра колдонуу/жасоо |
| Өмүрү | .gitlab-ci.ymlда ачык белгиленет |
GitLab тарабынан башкарылат, автоматтык өчүрүү |
| Кирүү | Веб-интерфейс, API аркылуу | Автоматтык түрдө Runner колдонулат |
| Байланыш | Түз байланышы жок (эгер атайын көрсөтүлбөсө) | Адатта, бөлүнүү үчүн тармакка байланыштуу |
Ошентип, артефакттар — бул куруу натыйжалары, ал эми кэш — бул кайра колдонулчу компоненттер, курууну тездетүү үчүн.
job_example:
stage: build
script:
- echo "Building and testing..."
- mkdir build
- echo "Build result" > build/result.txt
- echo "dependency installation"
cache:
paths:
- dependency_dir/ # көзкарандыктарды камтыган папка, кэшке салынат
artifacts:
paths:
- build/ # куруу папкасы артефактка айланат