Junior
Čo sa deje po stiahnutí kódu GitLabom?
sobes.tech AI
Odpoveď od AI
Po stiahnutí kódu (klonovaní repozitára), GitLab CI/CD vykonáva pipeline — súbor úloh (jobs) a etáp (stages), definovaných v súbore .gitlab-ci.yml v koreňovom adresári repozitára.
Hlavné etapy typického pipeline po stiahnutí kódu:
- Stages: Pipeline sa delí na etapy, ktoré sa vykonávajú postupne. Úlohy v jednej etape môžu byť vykonávané paralelne.
- Jobs: Každá úloha sa vykonáva v samostatnom Runneri. Runner je agent, ktorý preberá prácu z GitLab CI/CD a vykonáva ju.
- Commands: Vo vnútri každej úlohy sa vykonávajú príkazy uvedené v sekcii
scriptv.gitlab-ci.yml. Tieto príkazy môžu zahŕňať:- Skladanie projektu (napríklad kompilácia kódu, balenie artefaktov).
- Spustenie testov (unit testy, integračné testy a pod.).
- Kontrola kvality kódu (linting, statická analýza).
- Vytváranie Docker obrazov.
- Nasadenie (deployment) do testovacieho, staging alebo produkčného prostredia.
- Iné potrebné akcie.
- Dependencies (Závislosti): Úlohy môžu závisieť od výsledkov predchádzajúcich úloh, využívajúc kľúčové slovo
needs. - Artifacts (Artefakty): Výsledky vykonávania úloh (napríklad skompilovaný kód, správy o testoch, Docker obrazy) môžu byť uložené ako artefakty, ktoré sú dostupné na stiahnutie alebo sa používajú v následných úlohách.
- Caching (Cacheovanie): Závislosti alebo dočasné súbory môžu byť cacheované medzi spusteniami úloh na zrýchlenie vykonávania.
- Reporting (Správy): Výsledky vykonávania (úspech/neúspech), logy a artefakty sú dostupné v rozhraní GitLab.
Príkladná štruktúra .gitlab-ci.yml:
stages: # Definovanie etáp
- build
- test
- deploy
build_job: # Definovanie úlohy
stage: build # Príslušnosť k etape
script: # Príkazy na vykonanie
- echo "Building the project..."
- mvn package # Príklad príkazu na build s Mavenom
artifacts: # Uloženie artefaktov
paths:
- target/*.jar
test_job:
stage: test
script:
- echo "Running tests..."
- mvn test # Príklad príkazu na spustenie testov
needs: # Závislosť od predchádzajúcej úlohy
- build_job
deploy_job:
stage: deploy
script:
- echo "Deploying the application..."
- docker build -t my-app . # Príklad vytvorenia Docker obrazu
- docker push my-app # Príklad odoslania obrazu do repozitára
only: # Podmienka na vykonanie úlohy
- main # Len pri commite do vetvy main
Takže, po stiahnutí kódu, GitLab CI/CD orchestruje vykonanie určeného pracovného procesu, zameraného na zostavenie, testovanie a nasadenie aplikácie.