Sobes.tech
Middle

Mi történik, miután a GitLab megkapja a kódot?

sobes.tech MI

Válasz az MI-től

A GitLab, amikor kódot kap (általában git push-on keresztül), egy olyan folyamatot indít, amely a projekt beállításaitól függ:

  1. Webhooks: Amikor új kód érkezik, a GitLab értesíthe külső rendszereket (például CI/CD szervereket, projektkezelő rendszereket) HTTP-kérések küldésével. Ez egy trigger a további műveletekhez.

  2. CI/CD pipeline: Ha a .gitlab-ci.yml fájl konfigurálva van a projektben, a GitLab Runner elindítja a CI/CD pipeline-t. Ez a folyamat magában foglalja:

    • A .gitlab-ci.yml fájl szintaxisának ellenőrzését.
    • Feladatok (jobs) létrehozását a yml fájlban található definíciók alapján.
    • A feladatok hozzárendelését elérhető futtatókhoz.
    • A futtató megkapja a feladatokat, letölti a repository forráskódját.
    • A megadott parancsokat végrehajtja minden feladatra (építés, tesztelés, telepítés stb.).
    • Artefaktokat (összeállított alkalmazásokat, tesztjelentéseket) és naplófájlokat ment.
    • A feladatok állapotát visszaküldi a GitLabnak.

    Példa a .gitlab-ci.yml szerkezetére:

    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Az alkalmazás építése..."
        - make build
    
    test_job:
      stage: test
      script:
        - echo "Tesztelés..."
        - make test
    
    deploy_job:
      stage: deploy
      script:
        - echo "Az alkalmazás telepítése..."
        - make deploy
      only:
        - main  # Csak a main branch push esetén aktiválódik
    
  3. Automatikus műveletek: A GitLab más automatikus műveleteket is végrehajthat:

    • Merge Request létrehozása (ha más branchre pusholnak).
    • A Merge Request állapotának frissítése (ha létezik).
    • Biztonsági szkennelések futtatása (ha beállították).
    • Feladatok automatikus lezárása vagy összekapcsolása (kulcsszavak segítségével a commitokban vagy a Merge Request leírásában).
  4. Értesítési rendszer: A GitLab értesítéseket küld felhasználóknak e-mailben vagy más csatornákon (Slack, Mattermost), ha feliratkoztak a repository eseményeire (új commitok, pipeline státuszok, megjegyzések).

  5. A repository adatok frissítése: Belsőleg a GitLab frissíti a repository adatait, ágakat, tageket és a commit történelmet.

Az egész folyamat célja az új kód integrálása a munkafolyamatba, az építés, tesztelés és esetleg a telepítés automatizálása, valamint az érintett felek értesítése.