Sobes.tech
Middle

Co se stane poté, co GitLab obdrží kód?

sobes.tech AI

Odpověď od AI

GitLab, když obdrží kód (obvykle přes git push), spustí proces, který závisí na nastavení projektu:

  1. Webhooky: Při příchodu nového kódu může GitLab upozornit externí systémy (například CI/CD servery, systémy správy projektů) odesláním HTTP požadavků. To slouží jako spouštěč pro další akce.

  2. CI/CD pipeline: Pokud je v projektu nakonfigurován soubor .gitlab-ci.yml, spustí GitLab Runner CI/CD pipeline. Tento proces zahrnuje:

    • Kontrolu syntaxe souboru .gitlab-ci.yml.
    • Vytvoření úloh (jobs) na základě definic v yml souboru.
    • Přiřazení úloh dostupným runnerům.
    • Runner přijme úlohy, stáhne zdrojový kód repozitáře.
    • Spustí příkazy specifikované pro každou úlohu (build, testování, nasazení atd.).
    • Uloží artefakty ( sestavené aplikace, zprávy o testech) a log soubory.
    • Odesílá stav úloh zpět do GitLab.

    Příklad struktury .gitlab-ci.yml:

    stages:
      - build
      - test
      - deploy
    
    build_job:
      stage: build
      script:
        - echo "Sestavuji aplikaci..."
        - make build
    
    test_job:
      stage: test
      script:
        - echo "Spouštím testy..."
        - make test
    
    deploy_job:
      stage: deploy
      script:
        - echo "Nasazuji aplikaci..."
        - make deploy
      only:
        - main  # Spouští se pouze při pushi do větve main
    
  3. Automatické akce: GitLab může provádět i jiné automatické akce:

    • Vytvoření Merge Request (při pushi do větve odlišné od cílové větve).
    • Aktualizace stavu Merge Requestu (pokud existuje).
    • Spuštění bezpečnostních skenů (pokud jsou nakonfigurovány).
    • Automatické uzavření nebo spojení úloh (pomocí klíčových slov v commitech nebo popisu Merge Requestu).
  4. Systém oznámení: GitLab odesílá oznámení uživatelům e-mailem nebo přes jiné kanály (Slack, Mattermost), pokud jsou přihlášeni k událostem v repozitáři (nové commity, stavy pipeline, komentáře).

  5. Aktualizace dat repozitáře: Interně GitLab aktualizuje data o repozitáři, větvích, značkách a historii commitů.

Celý proces je zaměřen na integraci nového kódu do celkového pracovního toku, automatizaci sestavení, testování a případně nasazení, a také na upozornění zainteresovaných stran.