Middle
GitLab кодду жүктөп бүткөндөн кийин эмне болот?
sobes.tech AI
AIден жооп
GitLab репозиториянын кодун иштөө үчүн каталогго жүктөгөндөн кийин, .gitlab-ci.yml файлына аныкталган CI/CD түтүкчөсүнүн ишке ашырылышы башталат.
.gitlab-ci.ymlталдоосу: GitLab Runner (же эгер колдонулса, GitLab өзү, ички CI колдонулса).gitlab-ci.ymlфайлынан конфигурацияны окуйт. Бул файл этаптарды (stages) жана жумуштарды (jobs) сүрөттөйт.- Runnerдин башталышы: Бир жеткиликтүү GitLab Runner тандалат жана ишке ашыруу үчүн дайындалат. Runner репозиторий, commit, тармак жана
.gitlab-ci.ymlконфигурациясы тууралуу маалымат алат. - Ишке ашыруу чөйрөсүн түзүү: Runner жумуштарды аткаруу үчүн чөйрөнү даярдайт. Бул болушу мүмкүн:
- Виртуалдык машина
- Контейнер (Docker, Kubernetes)
- Ар ayrı сервер
- Shell
- Этаптардын (stages) аткарылышы: Цепочка этаптарга бөлүнүп,
.gitlab-ci.ymlде аныкталгандай аткарылат. Бир этаптагы жумуштар параллелдүү аткарылышы мүмкүн. - Жумуштардын (jobs) аткарылышы: Ар бир этапта конфигурацияланган жумуштар аткарылат. Жумуш төмөнкүлөрдү камтыйт:
- Ишке ашыруучү же сүрөттү (executor) аныктоо, эгер цепочка же
variablesбөлүмүндө белгиленбесе. - Репозиторийди клондоо (алдын ала GitLab тарабынан жасалган, бирок Runner
git fetchжеgit checkoutаткара алат). - Кэшти калыбына келтирүү (эгер конфигурацияланган болсо) тезирээк куруу үчүн (мисалы, көзкарандылыктарды жүктөө).
- Скрипттерди аткаруу (
script): Бул негизги мазмун, анда куруу, тестирлөө, анализ же жайгаштыруу командалары аткарылат. - Артефактарды жүктөө (эгер конфигурацияланган болсо): Жумуштун жыйынтыктары (мисалы, компиляцияланган бинардык файлдар, отчеттор) сакталат жана кийинки колдонуу үчүн даярдалат.
- Кэшти сактоо (эгер конфигурацияланган болсо) келечектеги ишти тездетүү үчүн.
- Ишке ашыруучү же сүрөттү (executor) аныктоо, эгер цепочка же
- Статус отчету: Runner ар бир жумуштун аткаруу статусун (жакшы, ката, токтотуу) GitLabга жиберет. Колдонуучу прогресс жана натыйжаларды цепочка барагында көрөт.
- Кийинки этапка өтүү: Эгер учурдагы этаптагы бардык жумуштар ийгиликтүү аяктагандан кийин (же
allow_failureорнотулса), кийинки этап башталат. Эгер жумуш ката менен аяктап,allow_failureорнотулбаса, бүт цепочка үзүлөт. - Цепочканын аяктоосу: Бардык этаптар аткарылган соң (же ката болсо), цепочка аяктайт. Натыйжалар жана артефактар GitLab веб-интерфейсинен жеткиликтүү.
Мисал катары .gitlab-ci.yml түзүмү:
// Цепочканын этаптарын аныктоо
stages:
- build
- test
- deploy
// Build этаптагы жумуш
build_job:
stage: build
image: docker:latest // Docker сүрөтүн колдонуу
script:
- echo "Куроо колдонмону..."
- docker build -t myapp:$CI_COMMIT_SHORT_SHA . // Docker сүрөтүн куруу
artifacts:
paths:
- myapp.tar // Куруу артефакты сактоо
// Test этаптагы жумуш
test_job:
stage: test
image: python:3.9 // Python сүрөтүн колдонуу
script:
- echo "Тесттерди ишке ашыруу..."
- pip install -r requirements.txt
- pytest // Тесттерди аткаруу
needs: ["build_job"] // build_job ийгиликтүү аяктагандан кийин
// Deploy этаптагы жумуш
deploy_job:
stage: deploy
image: ubuntu:latest // Ubuntu сүрөтүн колдонуу
script:
- echo "Колдонмону жайгаштыруу..."
- echo "Жайгаштыруу скрипти бул жерде..." // Жайгаштыруу скрипти
only: // Тек гана master же тэгдерде ишке ашырат
- master
- tags
needs: ["test_job"] // test_job ийгиликтүү аяктагандан кийин
Ошентип, кодду жүктөө — бул биринчи кадам, андан кийин .gitlab-ci.yml конфигурациясына негизделген автоматташтырылган куруу, тестирлөө жана жайгаштыруу процесси башталат.