Čo sa stane po tom, čo GitLab dostane kód?
sobes.tech AI
Odpoveď od AI
GitLab, po obdržaní kódu (zvyčajne cez git push), spúšťa proces závislý od nastavení projektu:
-
Webhooky: Pri príchode nového kódu môže GitLab informovať vonkajšie systémy (napríklad CI/CD server, systém riadenia projektov) odoslaním HTTP požiadaviek. Toto je spúšťač ďalších akcií.
-
CI/CD pipeline: Ak je v projekte nastavený súbor
.gitlab-ci.yml, GitLab Runner spustí CI/CD pipeline. Tento proces zahŕňa:- Kontrolu syntaxe súboru
.gitlab-ci.yml. - Vytvorenie úloh (jobs) na základe definícií v yml súbore.
- Priradenie úloh dostupným runnerom.
- Runner dostane úlohy, stiahne zdrojový kód repozitára.
- Vykoná príkazy uvedené pre každú úlohu (build, testovanie, nasadenie atď.).
- Uloží artefakty (zostavené aplikácie, správy o testovaní) a log súbory.
- Pošle stav vykonania úloh späť do GitLab.
Príklad štruktúry
.gitlab-ci.yml:stages: - build - test - deploy build_job: stage: build script: - echo "Building the application..." - make build test_job: stage: test script: - echo "Running tests..." - make test deploy_job: stage: deploy script: - echo "Deploying the application..." - make deploy only: - main # Spúšťa sa iba pri push do vetvy main - Kontrolu syntaxe súboru
-
Automatické akcie: GitLab môže vykonávať ďalšie automatické akcie:
- Vytvorenie Merge Requestu (pri pushi do vetvy odlišnej od cieľovej vetvy).
- Aktualizácia stavu Merge Requestu (ak existuje).
- Spustenie skenovania bezpečnosti (ak sú nastavenia povolené).
- Automatické zatváranie alebo spájanie úloh (cez kľúčové slová v commitoch alebo popisoch Merge Requestu).
-
Systém oznámení: GitLab odosiela oznámenia používateľom e-mailom alebo cez iné kanály (Slack, Mattermost), ak sú na udalosti v repozitári odberateľmi.
-
Aktualizácia údajov o repozitári: Interné, GitLab aktualizuje údaje o repozitári, vetvách, tagoch a histórii commitov.
Celý proces je zameraný na integráciu nového kódu do spoločného pracovného toku, automatizáciu buildov, testovania a prípadného nasadenia, ako aj na informovanie zainteresovaných strán.