معرفی سرویس گیتلب رانر
مقدمه
امروزه تحویل پیوسته نرمافزار به عنوان یکی از رویکردهای موفق و فراگیر حوزه نرمافزار شناخته میشود. در این رویکرد، تغییرات کد به صورت مرحلهای و مکرر وارد چرخه ساخت، تست و استقرار میشوند. به دلیل ادغام و تست و تحویل پیوسته اجزا و سرویسها، سرعت ارائه محصول و رفع نیازمندیهای مشتریان (به عنوان مزیتی رقابتی) افزایش مییابد.
مفهوم Continuous Integration
نرم افزاری را در نظر بگیرید که دارای یک مخزن کد یا ریپو است. توسعهدهندگان چندینبار در روز، کد جدیدی را در این ریپو push میکنند. هر بار، مجموعهای از scriptها جهت ساخت و تست به صورت خودکار اجرا میشوند. این عمل، که به آن Continuous Integration میگویند، تاثیر چشمگیری در کاهش بروز خطا و افزایش سرعت ارائه محصول داشته و باعث میشود که تغییرات، در هر branch از ریپو، به صورت دورهای با تستها، دستورالعملها و استانداردهای برنامهنویسی موردنظر پروژه همراستا شوند.
مفهوم Continuous Delivery/Deployment
Continuous Delivery یک مرحله فراتر از Continuous Integration است. نه تنها، هر بار مراحل ساخت و تست اجرا میشوند، بلکه نرمافزار به شکل خودکار در محیطهای مختلف مستقر میشود. تفاوت Continuous Deployment با Continuous Delivery این است که الزاما در دومی استقرار به صورت خودکار صورت نمیگیرد و نیاز به مداخله انسانی جهت استقرار نسخه جدید هست.
شرکتها و پروژههای مختلف ابزارهایی را در راستا بهکارگیری روشهای بالا توسعه دادهاند. در این میان، اکوسیستم GitLab، بستر پرکاربرد و محبوبی را برای بهکارگیری از CI/CD در اختیار توسعهدهندگان نرمافزار قرار میدهد. امکانات GitLab Runner امکان پیادهسازی چرخههای CI/CD پیشرفته با کاراییهای گوناگون از جمله ساخت container image از منبع گیت، اجرای انواع تستها و استقرار نسخههای جدید نرمافزار در محیطهای توسعه را فراهم میکند. شما به سادگی میتوانید در کنسول همروش، GitLab Runner اختصاصی خودتان را راهاندازی کنید و با استفاده از آن، برای ریپوهای خود چرخههای CI/CD تعریف و اجرا کنید.
راهاندازی سرویس GitLab Runner
سرویس GitLab Runner با نسخههای مختلف گیتلب از جمله سرویس گیتلب همروش (همگیت) یا گیتلب اختصاصی شرکتها سازگاری دارد و جهت راهاندازی آن، تنها لازم است مراحل زیر را دنبال کنید.
- ریپو
(repository) یا
گروهی از ریپوها
(Group) که تمایل دارید
GitLab Runner
برای آن ثبت شود،
را انتخاب کرده و به قسمت CI/CD تنظیمات آن (در منو سمت چپ صفحه) مراجعه کنید.
در قسمت مربوط به Runners، مطابق با تصویر زیر،
URL
وregistration token
را شناسایی کنید. در صورتی که از گروه برای دستهبندی ریپوهایتان استفاده میکنید، پیشنهاد میکنیم GitLab Runner را در سطح گروه ثبت کنید تا تمام ریپوهای گروه امکان استفاده از آن را داشتهباشند.
همچنین در صورتی که از گیتلب اختصاصی خودتان در سطح شرکت استفاده میکنید، میتوانید از صفحهی تنظیمات رانرها در ادمین اطلاعات ساخت Shared Runner جدید را مشاهده کنید.
- به صفحه دارکوب در کنسول همروش مراجعه کنید. سپس در قسمت «ساخت اپ»، ذیل «ساخت اپ آماده»، GitLab Runner را انتخاب کنید. در صفحه «تنظیمات اپ»، یک نام برای Runner برگزیده و اطلاعاتی که از مرحله قبل به دست آوردید را وارد کنید.
- در صفحه بعد، پس از انتخاب پلن مورد نظر، گزینه «ساخت اپ» را انتخاب کنید.
حدود یک دقیقه پس از پایان مراحل بالا، نسخه GitLab Runner شما مستقر و آماده استفاده است.
تنظیمات GitLab Runner
در تنظیمات CI/CD پروژه یا گروه، لیستی به نام Available runners وجود دارد که حاوی GitLab Runnerهای ثبتشده است. در این قسمت، با انتخاب گزینه Edit روبروی هر نسخه از GitLab Runner، میتوانید تنظیمات مربوط به آن را تغییر دهید. به طور مثال با تنظیم tagهای هر GitLab Runner، میتوانید استفاده پروژهها از آن را مدیریت کنید. برای اطلاعات بیشتر در این زمینه، میتوانید به قسمت tags در تنظیمات ci مراجعه کنید.
توصیف چرخه CI/CD
با ساخت فایل .gitlab-ci.yml
در root هر پروژه، میتوانید stageهای مورد نظر چرخه CI/CD را توصیف و با هر بار push کردن
کد یا به صورت دستی آنها را اجرا کنید. GitLab Runner در عین سادگی و راحتی، ویژگیهای منعطف و پیشرفتهای از جمله
اعمال محدودیتهای مختلف بر شرایط اجرای چرخه
،
بهکارگیری serviceهای آماده حین اجرای چرخه
و
استفاده از متغیرهای محیطی
را فراهم میکند. میتوانید برای آشنایی و بررسی این ویژگیها به
مستندات رسمی
مراجعه کنید. اگر در ساخت و تنظیم چرخه CI/CD خود با چالشی روبرو هستید
یا سوالی برایتان پیش آمده است، لطفا آن را در پشتیبانی همروش با ما در میان بگذارید.
متغیرهای محیطی
میتوانید از امکان تنظیم و استفاده از متغیرهای محیطی در گیتلب استفاده کنید.
برای این کار، میتوانید به قسمت Settings => CI/CD => Variables
مراجعه کرده و نام و مقدار متغیرهای مورد نظرتان را ثبت کنید.
در فایل .gitlab-ci.yml
با فرمت VARIABLE_NAME$
میتوانید به مقدار متغیرها دسترسی داشته باشید. این امکان به طور ویژه برای مدیریت و استفاده
از مقادیر محرمانه (که نباید در کد قرار داده شوند) مفید است. برای اطلاعات بیشتر، میتوانید به
قسمت variables از مستندات GitLab
مراجعه کنید.
جزئیات CI/CD پروژهها
در منوی سمت چپ هر پروژه، گزینهای به نام CI/CD وجود دارد که حاوی پارهای از تنظیمات و جزئیات مربوط به چرخهها است. در قسمت Pipelines و Jobs، میتوانید وضعیت و لاگهای چرخهها و جزئیات مربوط به هر stage را مشاهده کنید.
بروز مشکل در اجرای چرخه
در صورتی که مشکلی در اجرا چرخه رخ داده است، میتوانید به لاگ job مراجعه کرده و علت را بررسی کنید. در صورتی که مشکل ناشی از کد باشد (مثل وجود نقصان در داکرفایل یا شکستخوردن تستها)، لازم است اصلاحات مناسب در کد اعمال شود. اگر در حل این دست از خطاها با چالشی روبرو شدهاید و نیاز به راهنمایی دارید، لطفا آن را در پشتیبانی همروش با ما در میان بگذارید. اگر خطای چرخه مربوط به کد نیست، لطفا ابتدا یکبار دکمهی retry را در صفحهی job مربوط بزنید و در صورت بروز دوبارهی مشکل، به پشتیبانی همروش اطلاع دهید.
اجرای دستی چرخه
در صورتی که به هر دلیلی چرخه مورد نظر اجرا نمیشود و یا تمایل به اجرا چرخه بدون push کردن کد را دارید، میتوانید این کار را به صورت دستی انجام دهید. در قسمت Pipelines، دکمهی سبز رنگ Run Pipeline را بزنید، برنچ مورد نظر و متغیرهای مورد نیاز را مشخص کنید و سپس چرخه را اجرا کنید. متغیرهای تعریفشده در قسمت Variables پروژه به صورت پیشفرض به چرخه داده خواهند شد.