مقدمه

در دنیای توسعه نرم‌افزار، سرعت و پایداری در فرآیند استقرار (Deployment) اهمیت زیادی دارد.
با استفاده از GitLab CI/CD می‌توانید به‌صورت خودکار، کدها را تست، بیلد و در نهایت روی سرور مستقر کنید.
در این مقاله یاد می‌گیریم چگونه GitLab CI/CD را از صفر راه‌اندازی کنیم تا چرخه توسعه پروژه‌های شما سریع‌تر، قابل اعتمادتر و حرفه‌ای‌تر شود.

 GitLab CI/CD چیست؟

CI/CD مخفف عبارت‌های Continuous Integration و Continuous Deployment است.
این سیستم در GitLab به شما اجازه می‌دهد با هر بار Push در مخزن (Repository)، فرآیندهایی مانند:

  • اجرای تست‌ها

  • ساخت (Build) پروژه

  • و استقرار خودکار (Deploy)
    به‌صورت خودکار انجام شود.

 مراحل راه‌اندازی GitLab CI/CD

 مرحله ۱: نصب GitLab Runner

GitLab Runner سرویسی است که وظیفه اجرای Pipeline را بر عهده دارد.

در Debian/Ubuntu:

sudo apt update
sudo apt install gitlab-runner -y

فعال‌سازی سرویس:

sudo systemctl enable gitlab-runner
sudo systemctl start gitlab-runner

مرحله ۲: رجیستر کردن Runner در GitLab

در GitLab به مسیر زیر بروید:
Settings → CI/CD → Runners → Expand

توکن Runner را کپی کنید، سپس در سرور دستور زیر را اجرا کنید:

sudo gitlab-runner register

در مراحل بعدی:

Enter the GitLab instance URL: https://gitlab.com/
Enter the registration token: <YOUR_TOKEN>
Enter a description for the runner: sharen-runner
Enter tags: docker, deploy
Enter executor: docker

مرحله ۳: نوشتن فایل .gitlab-ci.yml

در ریشه پروژه‌تان، فایلی با نام .gitlab-ci.yml ایجاد کنید:
مثال برای پروژه‌ی Python:

stages:
– test
– build
– deploy

test:
stage: test
script:
– echo “Running tests…”
– pytest

build:
stage: build
script:
– echo “Building project…”
– docker build -t myapp:latest .

deploy:
stage: deploy
script:
– echo “Deploying…”
– docker compose up -d
only:
– main

 مرحله ۴: مشاهده Pipeline در GitLab

بعد از commit و push فایل .gitlab-ci.yml، GitLab به‌صورت خودکار Pipeline جدید را اجرا می‌کند.
به مسیر زیر بروید:
CI/CD → Pipelines
در آنجا می‌توانید وضعیت مراحل (test, build, deploy) را مشاهده کنید.

 مرحله ۵: مشاهده لاگ‌ها

برای بررسی لاگ هر مرحله روی آیکون مربوطه کلیک کنید.
در صورت بروز خطا، GitLab توضیح دقیقی از علت آن را نشان می‌دهد.

 مرحله ۶: اتوماسیون با Docker یا Kubernetes (پیشنهادی)

برای محیط‌های حرفه‌ای‌تر می‌توانید مراحل استقرار را در Docker Compose یا Kubernetes ادغام کنید.
مثلاً:

  • Build → Docker image

  • Deploy → Push to registry → Deploy on cluster

به این مقاله امتیاز دهید