Bosh sahifa Wiki GitLab CI

GitLab CI

GitLab CIGitLab platformasining o’ziga o’rnatilgan uzluksiz integratsiya va yetkazib berish tizimi. Alohida CI xizmatidan farqli o’laroq, u kod repozitoriysi bilan bir platformada, qo’shimcha integratsiyasiz mavjud bo’ladi.

GitLab platformasiga o’rnatilgan bo’lishi

Jenkins yoki CircleCI kabi vositalardan foydalanish uchun odatda alohida xizmatni GitHub yoki GitLab repozitoriysi bilan bog’lash kerak bo’ladi. GitLab CI esa GitLab‘ning o’zida allaqachon mavjud bo’lgani sababli, foydalanuvchi faqat konfiguratsiya faylini qo’shishi kifoya, alohida xizmatga ro’yxatdan o’tish yoki webhook sozlash talab qilinmaydi.

.gitlab-ci.yml fayli orqali konfiguratsiya

Har bir GitLab loyihasida repozitoriy ildizida joylashgan .gitlab-ci.yml fayli butun CI/CD jarayonini — qaysi bosqichlar (stages), qaysi buyruqlar va qanday shartlar bilan bajarilishini — tavsiflaydi. Fayl versiya nazorati ostida saqlangani uchun, quvur liniyasidagi o’zgarishlar ham kodning o’zi kabi tarixga ega bo’ladi.

GitLab Runner tushunchasi

Haqiqiy ishni bajaruvchi qism “GitLab Runner” deb ataladi — bu GitLab tomonidan taqdim etilgan umumiy runner yoki tashkilotning o’z serverida o’rnatilgan xususiy runner bo’lishi mumkin. Runner’lar Docker konteynerlarida, virtual mashinalarda yoki to’g’ridan-to’g’ri serverning o’zida ishlashi mumkin.

Alohida CI xizmatlaridan farqi

GitLab CI‘ning asosiy afzalligi — kod va CI/CD konfiguratsiyasi bir joyda, bir xil kirish huquqlari va interfeys ostida boshqarilishi. Bu Jenkins kabi alohida sozlanadigan tizimlarga qaraganda kamroq integratsiya ishini talab qiladi, ammo foydalanuvchini GitLab ekotizimiga ko’proq bog’lab qo’yadi.

DevOps quvur liniyasidagi o’rni

GitLab CI odatda kodni test qilish, konteynerlashtirish (Docker image yaratish) va yakuniy muhitga (production) joylashtirishgacha bo’lgan butun jarayonni avtomatlashtirish uchun ishlatiladi. Bu keng qamrov GitLab‘ning “yagona DevOps platformasi” degan umumiy strategiyasining muhim qismi hisoblanadi.

Bog’liq tushunchalar

GitLab, CI/CD, YAML, DevOps, Runner, Pipeline, Docker