Skip to main content

رانر گیت‌لب

هم‌روش برای ارائه‌ی فرآیندهای Continuous Integration و Continuous Delivery به مشتریان سازمانی، از سیستم رانرهای گیتلب استفاده می‌کند. در صورتی‌که کدهای شما روی سرویس گیتلب هم‌روش قرار گرفته باشد، به صورت خودکار امکان استفاده از سرویس Gitlab Runner برای پروژه‌های شما (بعد از فعالسازی رانر در قسمت Settings->CI/CD) وجود دارد. شما می‌توانید با ساخت و مقداردهی فایل .gitlab-ci.yml در root هر یک از پروژه‌هایتان، از این امکان بهره‌مند شوید. با استفاده از این قابلیت می‌توانید برای نمونه فرآیند رایج ساخت اتوماتیک داکر ایمیج از روی کد، تست خودکار کد بعد از هر push در ریپو و اجرای کد جدید در محیط production را داشته باشید. برای آشنایی بیشتر با نحوه‌ی کار با این سیستم و نحوه‌ی مقداردهی فایل gitlab-ci.yml. به مستندات گیتلب در این زمینه مراجعه کنید.

همچنین می‌توانید از امکان تنظیم و استفاده از متغیرهای محیطی در گیتلب استفاده کنید. برای این کار در قسمت Settings پروژه به قسمت CI/CD و سپس ٰVariables مراجعه کنید. در اینجا می‌توانید نام و مقدار متغیرهای مورد نیازتان را وارد کنید. در فایل gitlab-ci.yml. با فرمت name$ می‌توانید به مقدار آن متغیر دسترسی داشته باشید. از این امکان برای ست کردن مقادیر محرمانه (که نمی‌خواهیم داخل کد قرار بدهیم) استفاده می‌کنیم. برای اطلاعات بیشتر به صفحه‌ی مستندات مربوط به variables در گیتلب مراجعه کنید.

در صورت استفاده از سیستم دارکوب برای استقرار اپ‌هایتان، نیازی به تنظیم دستی این فایل وجود ندارد و این فایل به شکل اتوماتیک توسط سیستم دارکوب ساخته می‌شود. از این پس با هر بار push کردن کد، ایمیج داکر کد ساخته و نسخه‌ی اپ‌ در محیط production آپدیت می‌شود. مقادیر متغیرهای APP_ID و DEPLOY_TOKEN در صفحه‌ی ویرایش اپ در دارکوب قابل مشاهده هستند. برای نمونه محتوای فایل gitlab-ci.yml ای که دارکوب می‌سازد، مشابه زیر است:

darkube_build_appname_namespace:
image: hamravesh.hamdocker.ir/public/darkube-cli:v1.1
only:
refs:
- master
script:
- export IMAGE="registry.hamdocker.ir/hamravesh/appname"
- 'darkube build --push -t $IMAGE:$CI_COMMIT_SHORT_SHA -t $IMAGE:$CI_COMMIT_REF_SLUG
--file Dockerfile --build-context . --build-arg ENV=production'
stage: build
darkube_deploy_appname_namespace:
image: hamravesh.hamdocker.ir/public/darkube-cli:v1.1
only:
refs:
- master
script:
- darkube deploy --token ${DEPLOY_TOKEN}
--app-id ${APP_ID} --image-tag "${CI_COMMIT_SHORT_SHA}"
--job-id "${CI_JOB_ID}"
stage: deploy

برای مشاهده‌ی وضعیت و لاگهای این سیستم می‌توانید به قسمت CI/CD -> Pipelines در منوی سمت چپ در صفحه‌ی هر پروژه در سرویس گیتلب مراجعه کنید. همچنین از قسمت Jobs می‌توانید هر مرحله از فرآیند CI/CD را بررسی کنید و لاگهای خروجی آن مرحله را ببینید.

در صورتی‌که job های گیتلب به دلایلی غیر از مشکلات سمت کد (مثل مشکل در داکرفایل یا شکست‌خوردن تستها) که در لاگ Job قابل مشاهده است، دچار مشکل شوند، ابتدا یکبار دکمه‌ی retry را در صفحه‌ی job مربوط بزنید و در صورت بروز دوباره‌ی مشکل، به پشتیبانی هم‌روش اطلاع بدهید.

در صورتی که به هر دلیلی پایپلاین مورد نظر اجرا نشد، می‌توانید آن را به صورت دستی اجرا نمایید. برای این کار مجدداً وارد صفحه‌ی Pipelines بشوید. سپس دکمه‌ی سبز رنگ Run Pipeline را از قسمت بالا، سمت راست بزنید. در این مرحله نیاز است که برنچ مورد نظر و متغیر‌های مورد نیاز برای اجرای پایپلاین به آن داده شوند. متغیر‌های موجود در قسمت Variables پروژه به صورت پیش‌فرض به پایپلاین داده می‌شوند.

برای اینکه امکان pull و push کردن ایمیج از/به رجیستری هم‌روش را داشته باشید باید متغیرهای محیطی REGISTRY و REGISTRY_USER و REGISTRY_PASSWORD یا DOCKER_AUTH_CONFIG را در قسمت Settings->CI/CD->Variables (در سطح گروه یا در سطح پروژه) ست کنید.