Middle
Mis juhtub pärast seda, kui GitLab laadib alla koodi?
sobes.tech AI
Vastus AI-lt
Pärast seda, kui GitLab alla laadib koodi hoidla töökausta, algab CI/CD pailpajoon, mis on määratletud failis .gitlab-ci.yml.
.gitlab-ci.ymlanalüüs: GitLab Runner (või GitLab ise, kui kasutatakse integreeritud CI) loeb konfiguratsiooni.gitlab-ci.yml-st. See fail kirjeldab pailpajooni etappe (stages) ja ülesandeid (jobs).- Runneri initsialiseerimine: määratakse kättesaadav GitLab Runner pailpajooni täitmiseks. Runner saab teavet hoidla, kommi, haru ja
.gitlab-ci.ymlkonfiguratsiooni kohta. - Täitmise keskkonna ettevalmistamine: Runner valmistab ette keskkonna ülesannete täitmiseks. See võib olla:
- Virtuaalmasin
- Konteiner (Docker, Kubernetes)
- Eraldatud server
- Shell
- Etappide (stages) täitmine: pailpajoon täidetakse etappide kaupa, mis on määratletud
.gitlab-ci.yml-s. Üks etapp võib sisaldada paralleelselt täidetavaid ülesandeid. - Ülesannete (jobs) täitmine: iga etapi jooksul täidetakse konfigureeritud ülesandeid. Ülesanne hõlmab:
- Pildi või täitja (executor) määramist, kui see pole määratud pailpajooni või
variablessektsioonis. - hoidla kloonimist (juba tegi GitLab, kuid Runner võib teha
git fetchvõigit checkoutvajaliku oleku jaoks). - vahemälu taastamist (kui see on seadistatud) kiirendamiseks (näiteks sõltuvuste allalaadimine).
- skriptide täitmist (
script): see on ülesande põhisisu, kus täidetakse ehitamise, testimise, analüüsi või juurutamise käske. - artefaktide üleslaadimist (kui see on seadistatud): ülesande tulemused (näiteks kompileeritud binaarfailid, aruanded) salvestatakse edasiseks kasutamiseks või üleslaadimiseks.
- vahemälu salvestamist (kui see on seadistatud) tulevaste käivituste kiirendamiseks.
- Pildi või täitja (executor) määramist, kui see pole määratud pailpajooni või
- Staatusaruande saatmine: Runner saadab iga ülesande täitmise staatuse (edu, viga, tühistamine) tagasi GitLabile. Kasutaja näeb edenemist ja tulemusi pailpajooni lehel.
- Järgmise etapi üleminek: Kui kõik ülesanded käesolevas etapis on edukalt lõpetatud (või on seatud
allow_failure), algab järgmine etapp. Kui ülesanne lõpeb veaga jaallow_failureei ole seatud, katkestatakse kogu pailpajoon. - Pailpajooni lõpetamine: Pärast kõigi etappide täitmist (või vea korral) lõpeb pailpajoon. Tulemused ja artefaktid on kättesaadavad GitLabi veebiliideses.
Näide struktuurist /.gitlab-ci.yml`:
// Määratleme pailpajooni etapid
stages:
- build
- test
- deploy
// Ehitusülesanne build etapil
build_job:
stage: build
image: docker:latest // Kasutame Docker-i pilti
script:
- echo "Rakenduse ehitamine..."
- docker build -t myapp:$CI_COMMIT_SHORT_SHA . // Ehitatakse Docker pilt
artifacts:
paths:
- myapp.tar // Salvestame ehituse artefakti
// Testimise ülesanne test etapil
test_job:
stage: test
image: python:3.9 // Kasutame Python-i pilti
script:
- echo "Testide käivitamine..."
- pip install -r requirements.txt
- pytest // Käivitatakse testid
needs: ["build_job"] // Sõltub edukast build_job lõpetamisest
// Juurutamise ülesanne deploy etapil
deploy_job:
stage: deploy
image: ubuntu:latest // Kasutame Ubuntu pilti
script:
- echo "Rakenduse juurutamine..."
- echo "Juurutamise skript siin..." // Juurutamise skript
only: // Käivitub ainult masteri või siltide puhul
- master
- tags
needs: ["test_job"] // Sõltub edukast test_job lõpetamisest
Seega, koodi allalaadimine on vaid esimene samm, millele järgneb keeruline automatiseeritud ehitamise, testimise ja juurutamise protsess, mis põhineb .gitlab-ci.yml konfiguratsioonil.