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:
-
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.
-
CI/CD pipeline: Ha a
.gitlab-ci.ymlfá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.ymlfá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.ymlszerkezeté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 - A
-
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).
-
É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).
-
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.