Middle
Hogyan használjuk a GitLab CI-t az adatok megőrzésére több építési szakasz között?
sobes.tech MI
Válasz az MI-től
A GitLab CI-ben az adatok közötti mentéshez artefaktokat használnak. Ezek olyan fájlok vagy könyvtárak, amelyeket egy szakaszban hoznak létre, és a következő szakaszokban elérhetők.
A .gitlab-ci.yml konfiguráció így néz ki:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Build eredménye" > build_output.txt # Fájl létrehozása
artifacts:
paths: # Megadjuk, mely fájlokat/könyvtárakat kell menteni
- build_output.txt
expire_in: 1 week # Az artefaktumok tárolási ideje
test_job:
stage: test
script:
- cat build_output.txt # Hozzáférés a fájlhoz az előző szakaszból
- npm test
needs: # Függőség megadása az előző szakasztól
- build_job
deploy_job:
stage: deploy
script:
- deploy_script.sh
needs:
- test_job
Fő elemek:
artifacts: Meghatározza, mely fájlokat vagy könyvtárakat kell menteni a szakasz végrehajtása után.paths: A fájlok vagy könyvtárak útvonalainak listája, amelyek artefaktokká válnak.expire_in: Meghatározza, mennyi ideig lesznek elérhetők az artefaktok.needs: Egyértelműen jelzi a jelenlegi szakasz függőségét az előzőhöz képest. A GitLab CI automatikusan letölti a megadott szakaszok artefaktjait a jelenlegi végrehajtása előtt.
needs nélkül a GitLab CI az összes előző szakasz artefaktjait letölti ugyanabban vagy korábbi szakaszban, ami hatékonytalan lehet. A needs segítségével pontosabban ellenőrizhető, mely artefaktokat töltik le.
A függőségek tárolására cache-t is lehet használni, például telepített csomagokat, de ez a gyorsabb újrafelépítéseket szolgálja, nem pedig az eredmények átadását egyik szakaszból a másikba. Az artefaktok a fő mechanizmusok az eredmények átadására a szakaszok között.