Middle
Ako použiť GitLab CI na uchovávanie údajov medzi viacerými fázami zostavovania?
sobes.tech AI
Odpoveď od AI
Na ukladanie dát medzi fázami zostavovania v GitLab CI sa používajú artefakty. Ide o súbory alebo adresáre vytvorené v jednej fáze a dostupné v nasledujúcich.
Konfigurácia v .gitlab-ci.yml vyzerá takto:
stages:
- build
- test
- deploy
build_job:
stage: build
script:
- echo "Výsledok zostavovania" > build_output.txt # Vytvorenie súboru
artifacts:
paths: # Uvádzajú sa súbory/adresáre na uloženie
- build_output.txt
expire_in: 1 week # Doba uchovávania artefaktov
test_job:
stage: test
script:
- cat build_output.txt # Prístup k súboru z predchádzajúcej fázy
- npm test
needs: # Uvádza závislosť od predchádzajúcej fázy
- build_job
deploy_job:
stage: deploy
script:
- deploy_script.sh
needs:
- test_job
Kľúčové prvky:
artifacts: Určuje, ktoré súbory alebo adresáre majú byť po vykonaní fázy uložené.paths: Zoznam ciest k súborom alebo adresárom, ktoré sa stanú artefaktmi.expire_in: Určuje, ako dlho budú artefakty dostupné.needs: Výslovne uvádza závislosť aktuálnej fázy od predchádzajúcej. GitLab CI automaticky stiahne artefakty z uvedených fáz pred vykonaním aktuálnej.
Bez needs GitLab CI stiahne artefakty zo všetkých predchádzajúcich fáz v rovnakej alebo staršej fáze, čo môže byť neefektívne. Výslovné uvedenie závislostí s needs umožňuje presnejšiu kontrolu, ktoré artefakty sa sťahujú.
Tiež je možné použiť cache na uloženie závislostí, ako sú nainštalované balíky, ale je určená na zrýchlenie opakovaných zostáv, nie na prenos výsledkov z jednej fázy do druhej. Artefakty sú hlavný mechanizmus na prenos výstupných dát medzi fázami.