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