GitLab CI/CD برای مبتدیها؛ راهنمای شروع از صفر تا اولین Pipeline
اگر بهتازگی کار با GitLab را شروع کردهاید، احتمالاً اصطلاحاتی مانند CI/CD، Pipeline، Runner و فایل .gitlab-ci.yml را بارها دیدهاید. در نگاه اول ممکن است این مفاهیم پیچیده به نظر برسند، اما در واقع GitLab CI/CD تنها روشی برای خودکارسازی فرآیند ساخت، تست و استقرار نرمافزار است.
در این مقاله با زبان ساده یاد میگیرید GitLab CI/CD چیست، چگونه کار میکند و چگونه اولین Pipeline خود را ایجاد کنید.

GitLab CI/CD چیست؟
GitLab CI/CD مجموعهای از قابلیتهای داخلی GitLab است که به توسعهدهندگان کمک میکند پس از هر تغییر در کد، فرآیندهای مختلف بهصورت خودکار اجرا شوند.
به بیان ساده، بهجای اینکه بعد از هر Commit بهصورت دستی پروژه را Build، Test و Deploy کنید، GitLab این مراحل را برای شما انجام میدهد.
به همین دلیل، بسیاری از تیمهای DevOps و توسعه نرمافزار از GitLab CI/CD برای افزایش سرعت توسعه، کاهش خطاهای انسانی و استانداردسازی فرآیند انتشار استفاده میکنند.

CI و CD چه تفاوتی دارند؟
اگرچه معمولاً این دو مفهوم کنار هم استفاده میشوند، اما هرکدام وظیفه متفاوتی دارند.
Continuous Integration (CI)
در Continuous Integration یا یکپارچهسازی مداوم، هر بار که توسعهدهنده کد جدیدی را به مخزن ارسال میکند، GitLab بهصورت خودکار پروژه را بررسی میکند.
برای مثال:
- Build پروژه
- اجرای تستها
- بررسی کیفیت کد
- اجرای Lint
- بررسی وابستگیها
در نتیجه اگر مشکلی وجود داشته باشد، همان لحظه مشخص میشود و دیگر لازم نیست در پایان پروژه با تعداد زیادی خطا روبهرو شوید.
Continuous Delivery / Deployment (CD)
پس از موفقیتآمیز بودن مرحله CI، نوبت انتشار نرمافزار میرسد.
در این مرحله GitLab میتواند:
- فایل اجرایی تولید کند.
- Docker Image بسازد.
- برنامه را روی سرور تست منتشر کند.
- نسخه نهایی را روی محیط Production مستقر کند.
در برخی سازمانها مرحله انتشار با تأیید مدیر انجام میشود (Continuous Delivery) و در برخی دیگر بهطور کاملاً خودکار انجام میشود (Continuous Deployment).
GitLab CI/CD چگونه کار میکند؟
زمانی که کدی را در GitLab Push میکنید، اتفاقات زیر رخ میدهد:
- GitLab فایل
.gitlab-ci.ymlرا از ریشه پروژه میخواند. - بر اساس تنظیمات این فایل، یک Pipeline ایجاد میشود.
- Pipeline شامل چند Stage است.
- هر Stage شامل یک یا چند Job خواهد بود.
- Jobها توسط GitLab Runner اجرا میشوند.
- اگر تمام Jobهای یک Stage موفق باشند، اجرای Pipeline وارد Stage بعدی میشود.
- در صورت شکست یک Stage، Pipeline معمولاً متوقف میشود.

Pipeline چیست؟
Pipeline قلب GitLab CI/CD محسوب میشود.
در واقع Pipeline مجموعهای از مراحل پشت سر هم است که پس از هر Commit یا Merge Request اجرا میشوند.
یک Pipeline معمولی معمولاً شامل مراحل زیر است:
Build
↓
Test
↓
Deploy
البته در پروژههای بزرگتر ممکن است مراحل بیشتری مانند Security Scan، Lint، Package یا Release نیز به آن اضافه شوند.
Stage چیست؟
هر Pipeline از چند Stage تشکیل میشود.
Stage مشخص میکند که Jobها با چه ترتیبی اجرا شوند.
برای مثال:
Build
↓
Test
↓
Deploy
اگر مرحله Build شکست بخورد، مرحله Test اجرا نخواهد شد.
همچنین چند Job میتوانند همزمان در یک Stage اجرا شوند؛ البته به شرطی که Runner کافی در دسترس باشد.
Job چیست؟
هر کاری که GitLab باید انجام دهد یک Job نام دارد.
برای مثال:
- نصب Packageها
- اجرای Unit Test
- Build پروژه
- ساخت Docker Image
- Deploy روی سرور
هر Job دستورات مشخصی دارد که در فایل YAML تعریف میشوند.

GitLab Runner چیست؟
Runner در واقع موتور اجرایی GitLab CI/CD است.
Runner کدهای تعریفشده در Pipeline را اجرا میکند.
اگر Runner وجود نداشته باشد، هیچ Pipelineای اجرا نخواهد شد.
در GitLab.com معمولاً Runnerهای اشتراکی بهصورت پیشفرض در دسترس هستند، اما در نسخههای Self-Managed میتوانید Runner اختصاصی خود را نصب و پیکربندی کنید.
فایل .gitlab-ci.yml چیست؟
مهمترین فایل در GitLab CI/CD، فایل .gitlab-ci.yml است.
این فایل در ریشه مخزن قرار میگیرد و مشخص میکند:
- چه Jobهایی اجرا شوند.
- ترتیب اجرای مراحل چگونه باشد.
- از چه Image یا محیط اجرایی استفاده شود.
- چه اسکریپتهایی اجرا شوند.
- خروجیها (Artifacts) کجا ذخیره شوند.
- چه شرایطی باعث اجرای Pipeline شود.
:برای کسب اطلاعات تخصصی راجع به خدمات مشاوره ما در نصب گیتلب به مطلب زیر مراجعه فرمایید
اولین Pipeline در GitLab
یک نمونه بسیار ساده از فایل CI/CD به شکل زیر است:
stages:
- build
- test
build-job:
stage: build
script:
- echo "Building project"
test-job:
stage: test
script:
- echo "Running tests"
پس از Commit این فایل، GitLab بهصورت خودکار Pipeline را اجرا میکند.
اگر هر دو Job با موفقیت پایان یابند، Pipeline نیز موفق خواهد بود.
چگونه اولین Pipeline را اجرا کنیم؟
برای شروع کافی است مراحل زیر را انجام دهید:
- یک پروژه در GitLab ایجاد کنید.
- مطمئن شوید Runner فعال دارید.
- فایل
.gitlab-ci.ymlرا در ریشه پروژه قرار دهید. - فایل را Commit و Push کنید.
- از بخش Build → Pipelines وضعیت اجرای Pipeline را مشاهده کنید.
مزایای GitLab CI/CD
استفاده از GitLab CI/CD تنها برای خودکارسازی Build نیست؛ بلکه مزایای گستردهتری نیز دارد.
از جمله:
- کاهش خطاهای انسانی
- دریافت سریع بازخورد از تغییرات کد
- افزایش کیفیت نرمافزار
- انتشار سریعتر نسخههای جدید
- استانداردسازی فرآیند توسعه
- اجرای خودکار تستها
- کاهش زمان انتشار (Release)
به همین دلیل، امروزه تقریباً تمام تیمهای حرفهای توسعه نرمافزار از CI/CD بهعنوان بخشی جداییناپذیر از فرآیند DevOps استفاده میکنند.
اشتباهات رایج افراد تازهکار
اگر بهتازگی کار با GitLab CI/CD را شروع کردهاید، معمولاً این اشتباهات را مشاهده خواهید کرد:
- اجرای همه کارها در یک Job
- استفاده نکردن از Stageهای مجزا
- نداشتن Runner فعال
- قرار دادن فایل
.gitlab-ci.ymlدر مسیر اشتباه - نادیده گرفتن Logهای Pipeline هنگام بروز خطا
با رعایت همین نکات ساده، یادگیری GitLab CI/CD بسیار آسانتر خواهد شد.
جمعبندی
GitLab CI/CD یکی از مهمترین قابلیتهای GitLab است که به تیمهای توسعه کمک میکند فرآیند ساخت، تست و استقرار نرمافزار را بهصورت کاملاً خودکار انجام دهند.
اگرچه در ابتدا مفاهیمی مانند Pipeline، Job، Stage و Runner ممکن است کمی پیچیده به نظر برسند، اما پس از ساخت اولین Pipeline متوجه خواهید شد که این ابزار تا چه اندازه میتواند سرعت توسعه، کیفیت کد و نظم فرآیند انتشار را افزایش دهد.
اگر تازه وارد دنیای DevOps شدهاید، پیشنهاد میشود ابتدا با ساخت یک Pipeline ساده شروع کنید و سپس بهتدریج قابلیتهایی مانند Cache، Artifacts، Rules، Variables و Deploymentهای خودکار را به پروژه خود اضافه کنید.
برای اطلاعات بیشتر و دریافت مشاوره سازمانی با ما در ارتباط باشید






