راه اندازی CI/CD با GitLab برای برنامه های ASP.NET Core

امروزه CI/CD یا به عبارتی یکپارچه سازی و استقرار مداوم کدهای نوشته شده توسط تیم برنامه نویسی یک از کلیدی ترین مسائلی است که باید برای جلوگیری از تاثیر گذاری خطای انسانی و اجرای تست های نوشته شده قبل از استقرار روی سرور در نظر گرفته شود. GitLab با مجموعه ای از ویژگی ها همراه است تا CI / CD  را به برنامه خود بصورت رایگان اضافه کنید.

در این مقاله خواهیم دید که چگونه می توانیم با استفاده از خدمات رایگان GitLab ، CI / CD را در به پروژه خود اضافه کنیم.

این پست از ۴ قسمت تشکیل شده است:

۱- مرور کلی سناریو

۲- تنظیم یک Runner

۳- پیکربندی سناریو

۴- بررسی روند کار در Gitlab

 

۱- مرور کلی سناریو

مثالی که می خواهیم بررسی کنیم یک برنامه ASP NET Core است که به عنوان یک سرویس Windows اجرا می شود.

برای این کار ساده ترین سناریوی ممکن را در نظر می گیریم:

 

ابتدا می خواهیم CI را تنظیم کنیم  و این به معنای ساخت و اجرای تست و تشخیص پاس شدن یا نشدن تست های نوشته شده در هر بار Push کردن کدهای جدید است و بعد از موفقیت در Build و اجرای تستها در مراحل بعد خروجی برنامه به طور خودکار در رایانه محلی خود پابلیش می شود.البته این یک نمونه ساده است و در دنیای واقعی این سناریو می تواند روی VM پیاده سازی شود.

روند کار به شرح زیر خواهد بود:

در هر Push روی Branch اصلی ، کد Build خواهد شد ، تست ها اجرا می شود ، برنامه منتشر شده و پس از اتمام خط لوله ، برنامه با تمام تغییرات جدید قابل دسترسی خواهد بود.

برای تنظیم روند کار در GitLab ، فقط دو مرحله لازم است:

مرحله اول: یک Runner برای GitLab نصب کنید

مرحله دوم: فایل  gitlab-ci.yml را پیکربندی کنید

بعد خواهیم دید که چگونه این کار را انجام دهیم.

 

۲- تنظیم یک Runner

سه کلمه کلیدی مهم وجود دارد؛ Runner ، Job و Task

Runner برنامه ای است که کارها را اداره می کند.

Job مجموعه ای از دستورالعمل ها مانند یک Task است که تحت شرایط خاصی اجرا می شود.

با استفاده از یک Runner پیکربندی شده ، ما می توانیم با ایجاد خط لوله ای متشکل از Job های مختلف ، یک فرآیند اتوماسیون را برای CI / CD تنظیم کنیم ، Job اول برنامه ما را می سازد ، Job دوم تمام تست های ما را اجرا می کند ، و در نهایت Job سوم و آخر برنامه را منتشر می کند

 

برای پیکربندی Runner ، دستورالعمل gitlab را دنبال می کنیم:

پوشه ای را برای مثال  C: \ GitLab-Runner ایجاد کنید

فایل exe را برای Runner از این آدرس https://docs.gitlab.com/runner/install/windows.html  دانلود کنید

Runnerرا Register کنید. مطمئن شوید که توکن را از Settings > CI/CD > Runners settings > Specific Runners.کپی کرده اید. می توانید با کمک لینک زیر این کار را انجام دهید:

https://docs.gitlab.com/runner/register/index.html#windows

Runner را به عنوان یک سرویس Windows نصب کنید

پس از اتمام این مراحل ، باید یک Runner کاملاً کاربردی برای پذیرش Job ها داشته باشید.

۳-Job خود را پیکربندی کنید

در این مرحله کاری که باید انجام دهیم ایجاد Job با افزودن یک .gitlab-ci.yml در ریشه برنامه به شکل زیر است:

 

 

این خط لوله توسط ۳ Job به نام های زیر ساخته خواهد شد:

Build

Test

Deploy

 

برای اولین Job  ، ما dotnet build را اجرا می کنیم که روش پیش فرض Build کردن برنامه ASP NET Core با استفاده از dotnet CLI است

در Job بعد ، dotnet test  را انجام می دهیم که تمام آزمون های ما را انجام می دهد

و در آخر در deploy یک فایل اسکریپت را که من به صورت محلیدر دستگاه خود داشتم در یک مسیر مشخص اجرا می کند

محتوای Publish.cmd من به شرح زیر است:

 

همانطور که قبلاً نیز اشاره کردم ، برنامه ASP NET Core به عنوان یک سرویس Windows اجرا می شود. به راحتی می توانید با استفاده از کتابخانه Microsoft.AspNetCore.Hosting.WindowsService و پیروی از آموزش اسناد رسمی https://docs.microsoft.com/en-us/aspnet/core/hosting/windows-service کار را پیکربندی کنید.

۴-بررسی روند کار در Gitlab

اکنون که تنظیمات Runner خود را داریم و پرونده .gitlab-ci.yml را پیکربندی کرده ایم ، اتوماسیون ساخت و استقرار کامل شده است. اما بخش بسیار مهم دیگر CI / CD شفافیت است.شما قادر به مشاهده مراحل فعلی استقرار و قادر به شناسایی خطاهای نقطه به نقطه خواهید بود.

ما می توانیم نمای کلی خط لوله را به صورت زیر ببینیم:

 

این رابط کاربری اجازه می دهد تا اجرای کار را به عنوان گام های متوالی ببینیم و همچنین متوجه میشویم در چه مرحله ای استقرار شکست خورده است. در هر مرحله ، یک علامت Failure با یک صلیب قرمز را مشاهده خواهیم کرد که در آن می توانیم دایره سیاه را برای جزئیات بیشتر کلیک کنیم.

از آنجا که هر مرحله در واقع یک Job است ، می توانیم تمام کارهایی را که تاکنون برای مخزن خود انجام داده ایم را ببینیم.

 

این به ما کمک می کند تا به سرعت نقطه ای را که مشکل در آن وجود دارد ، مانیتور کنیم.

در زیر می توانید پابلیش های مختلف را ببینید

میلاد جلالی

میلاد جلالی هستم،برنامه نویس و توسعه دهنده اندروید و وبسایت

اضافه کردن نظر

دسته ها


گروه فناوری اطلاعات اِرن در سال 1397 با رویکرد طراحی و توسعه سیستم های بهینه نرم افزاری و آموزش آخرین تکنولوژی ها و زبان های برنامه نویسی روز دنیا بنا نهاده شده و پرقدرت اهداف خود را دنبال میکند