Junior
Mi történik, miután a GitLab letölti a kódot?
sobes.tech MI
Válasz az MI-től
A kód letöltése (a repository klónozása) után a GitLab CI/CD egy pipeline-t hajt végre — egy feladatokból (jobs) és szakaszokból (stages) álló sorozatot, amelyeket a .gitlab-ci.yml fájl határoz meg a repository gyökérkönyvtárában.
A kód letöltése után egy tipikus pipeline fő szakaszai:
- Stages: A pipeline szakaszokra van osztva, amelyek egymás után kerülnek végrehajtásra. Egy szakaszban lévő feladatok párhuzamosan is futtathatók.
- Jobs: Minden feladat egy külön Runner-en fut. A Runner egy ügynök, amely a GitLab CI/CD-től kapja a munkát és végrehajtja azt.
- Commands: Minden feladatban a
.gitlab-ci.ymlscriptszekciójában megadott parancsok futnak le. Ezek a parancsok tartalmazhatnak:- A projekt építése (pl. kód fordítása, artefaktok csomagolása).
- Tesztek futtatása (egység, integrációs stb.).
- A kód minőségének ellenőrzése (linting, statikus elemzés).
- Docker képek készítése.
- Deployment teszt-, staging vagy produkciós környezetbe.
- Egyéb szükséges műveletek.
- Dependencies (Függőségek): A feladatok függhetnek az előző feladatok eredményeitől, a
needskulcsszó használatával. - Artifacts (Artefaktok): A feladatok eredményei (pl. fordított kód, tesztjelentések, Docker képek) artefaktként menthetők, amelyek letölthetők vagy későbbi feladatokban felhasználhatók.
- Caching (Gyorsítótárazás): A függőségek vagy ideiglenes fájlok cache-elhetők a feladatok közötti gyorsítás érdekében.
- Reporting (Jelentés): A végrehajtás eredményei (siker/sikertelenség), logok és artefaktok elérhetők a GitLab felületén.
A .gitlab-ci.yml szerkezeti példája:
stages: # Szakaszok meghatározása
- build
- test
- deploy
build_job: # Feladat meghatározása
stage: build # A szakaszhoz tartozik
script: # Parancsok a végrehajtáshoz
- echo "A projekt építése..."
- mvn package # Maven építési példa
artifacts: # Artefaktok mentése
paths:
- target/*.jar
test_job:
stage: test
script:
- echo "Tesztelés..."
- mvn test # Teszt futtatási példa
needs: # Függőség az előző feladattól
- build_job
deploy_job:
stage: deploy
script:
- echo "Alkalmazás telepítése..."
- docker build -t my-app . # Docker kép építése példa
- docker push my-app # Kép pusholása a tárolóba
only: # Feltétel a feladat végrehajtásához
- main # Csak a main ágban történő commit esetén
Így, a kód letöltése után a GitLab CI/CD a felhasználó által meghatározott munkafolyamatot szervezi, amely az alkalmazás építésére, tesztelésére és telepítésére irányul.