Sobes.tech
Middle

GitLab кодду жүктөп бүткөндөн кийин эмне болот?

sobes.tech AI

AIден жооп

GitLab репозиториянын кодун иштөө үчүн каталогго жүктөгөндөн кийин, .gitlab-ci.yml файлына аныкталган CI/CD түтүкчөсүнүн ишке ашырылышы башталат.

  1. .gitlab-ci.yml талдоосу: GitLab Runner (же эгер колдонулса, GitLab өзү, ички CI колдонулса) .gitlab-ci.yml файлынан конфигурацияны окуйт. Бул файл этаптарды (stages) жана жумуштарды (jobs) сүрөттөйт.
  2. Runnerдин башталышы: Бир жеткиликтүү GitLab Runner тандалат жана ишке ашыруу үчүн дайындалат. Runner репозиторий, commit, тармак жана .gitlab-ci.yml конфигурациясы тууралуу маалымат алат.
  3. Ишке ашыруу чөйрөсүн түзүү: Runner жумуштарды аткаруу үчүн чөйрөнү даярдайт. Бул болушу мүмкүн:
    • Виртуалдык машина
    • Контейнер (Docker, Kubernetes)
    • Ар ayrı сервер
    • Shell
  4. Этаптардын (stages) аткарылышы: Цепочка этаптарга бөлүнүп, .gitlab-ci.ymlде аныкталгандай аткарылат. Бир этаптагы жумуштар параллелдүү аткарылышы мүмкүн.
  5. Жумуштардын (jobs) аткарылышы: Ар бир этапта конфигурацияланган жумуштар аткарылат. Жумуш төмөнкүлөрдү камтыйт:
    • Ишке ашыруучү же сүрөттү (executor) аныктоо, эгер цепочка же variables бөлүмүндө белгиленбесе.
    • Репозиторийди клондоо (алдын ала GitLab тарабынан жасалган, бирок Runner git fetch же git checkout аткара алат).
    • Кэшти калыбына келтирүү (эгер конфигурацияланган болсо) тезирээк куруу үчүн (мисалы, көзкарандылыктарды жүктөө).
    • Скрипттерди аткаруу (script): Бул негизги мазмун, анда куруу, тестирлөө, анализ же жайгаштыруу командалары аткарылат.
    • Артефактарды жүктөө (эгер конфигурацияланган болсо): Жумуштун жыйынтыктары (мисалы, компиляцияланган бинардык файлдар, отчеттор) сакталат жана кийинки колдонуу үчүн даярдалат.
    • Кэшти сактоо (эгер конфигурацияланган болсо) келечектеги ишти тездетүү үчүн.
  6. Статус отчету: Runner ар бир жумуштун аткаруу статусун (жакшы, ката, токтотуу) GitLabга жиберет. Колдонуучу прогресс жана натыйжаларды цепочка барагында көрөт.
  7. Кийинки этапка өтүү: Эгер учурдагы этаптагы бардык жумуштар ийгиликтүү аяктагандан кийин (же allow_failure орнотулса), кийинки этап башталат. Эгер жумуш ката менен аяктап, allow_failure орнотулбаса, бүт цепочка үзүлөт.
  8. Цепочканын аяктоосу: Бардык этаптар аткарылган соң (же ката болсо), цепочка аяктайт. Натыйжалар жана артефактар 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 конфигурациясына негизделген автоматташтырылган куруу, тестирлөө жана жайгаштыруу процесси башталат.