Sobes.tech
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.