یک راهنمای سریع در مورد مزایای استفاده از اقدامات GitHub به عنوان ابزار CI/CD مورد نظر شما - و نحوه ساخت خط لوله CI/CD با آن.
نویسنده 2 فوریه 2022
ادغام مداوم / تحویل مداوم (CI / CD) مدتهاست که دامنه کارشناسان DevOps است. اما با معرفی CI/CD بومی به GitHub در سال 2019 از طریق اقدامات GitHub ، آسانتر از همیشه است که CI/CD را مستقیماً از مخزن خود وارد گردش کار خود کنید.
این یک چیز عالی استما به عنوان توسعه دهندگان ، ما آموزش داده ایم تا از بررسی های همسالان استفاده کنیم تا اطمینان حاصل کنیم که کد ما کار می کند. اما من اینجا هستم تا به شما بگویم که باید بررسی همسالان را مختل کنیم. اگر برای ساخت خط لوله CI/CD از اقدامات Git ، GitHub و GitHub استفاده می کنید ، باید به کد خود اطمینان داشته باشید.
من می خواهم شما را دقیقاً از طریق ساخت خط لوله CI/CD خود ، درست از مخزن خود در Github ، پیاده روی کنم.
مزایای اصلی استفاده از اقدامات GitHub برای خطوط لوله CI/CD
اما ابتدا ، بیایید از طریق برخی از مزایای استفاده از اقدامات GitHub صحبت کنیم - زیرا صادقانه بگویم ، بسیاری از ابزارهای دیگر در آنجا وجود دارند. بگذارید چهار مزیت بزرگی را که با آن روبرو شده ام باز کنم:
تنظیم خط لوله CI/CD ساده است: اقدامات GitHub توسط توسعه دهندگان انجام می شود ، بنابراین برای تنظیم و حفظ خط لوله خود نیازی به منابع اختصاصی ندارید. نیازی به پیکربندی دستی و تنظیم CI/CD نیست. لازم نیست وب سایت های وب را تنظیم کنید ، لازم نیست سخت افزار بخرید ، برخی از موارد را در آنجا رزرو کنید ، آنها را به روز نگه دارید ، تکه های امنیتی را انجام دهید یا دستگاه های بیکار را پایین بیاورید. شما فقط یک پرونده را در repo خود رها می کنید ، و این کار می کند.
پاسخ به هر وب سایت در GitHub: از آنجا که اقدامات GitHub کاملاً با GitHub یکپارچه شده است ، می توانید هر وب وب را به عنوان یک محرک رویداد برای یک اتوماسیون یا خط لوله CI/CD تنظیم کنید. این شامل مواردی مانند درخواست های کشش ، مسائل و نظرات است ، اما همچنین شامل وب های وب از هر برنامه ای است که شما در مخزن GitHub خود ادغام شده اید. بیایید بگوییم که شما می خواهید از هر یک از ابزارهای زیادی که در آنجا هستند برای اجرای بخشی از خط لوله توسعه خود استفاده کنید. با اقدامات GitHub ، می توانید گردش کار CI/CD و خطوط لوله وب از این برنامه ها را تحریک کنید (حتی چیزی ساده ، مانند پیام برنامه چت ، اگر برنامه گپ خود را در مخزن GitHub خود ادغام کرده اید).
گردش کار و قابل استفاده مجدد جامعه: شما می توانید گردش کار خود را به صورت عمومی با جامعه گسترده تر GitHub به اشتراک بگذارید یا به گردش کار CI/CD از پیش ساخته شده در نحوه ساخت خط لوله CI/CD با اقدامات GitHub دسترسی پیدا کنید
در مورد اینکه خط لوله CI/CD چیست و باید انجام شود ، واضح باشید. این یک نت ساده است ، اما مهم است. خط لوله CI هنگام تغییر کد اجرا می شود و باید اطمینان حاصل کند که تمام تغییرات شما در هنگام ادغام با بقیه کد کار می کند. همچنین باید کد شما را کامپایل کند ، تست ها را اجرا کند و بررسی کند که عملکرد آن است. یک خط لوله CD یک قدم جلوتر می رود و کد ساخته شده را در تولید مستقر می کند.
Action GitHub یک نوع "ماجراجویی خود را انتخاب می کند" از رویکرد CI/CD استفاده می کند. اولین باری که اقدامات GitHub را در یک مخزن باز می کنید ، آن را مشاهده خواهید کرد. گزینه های هدایت شده زیادی با گردش کار از پیش ساخته CI وجود دارد که می توانید از آن استفاده کنید ، طبق نیازهای فناوری خود. اما در صورت تمایل می توانید گردش کار CI خود را از ابتدا بسازید.
مثال ما یک وب سایت ساخته شده در Astro و از طریق صفحات GitHub مستقر شده است. برای هر دو بخش CI و CD این راهنما ، ما از وب سایتی که من ساخته و توسعه داده ام به نام www. opensauced. pizza استفاده خواهیم کرد. این وب سایت در نظر گرفته شده است تا همکاران منبع باز برای اولین بار بتوانند پروژه های منبع باز را پیدا کنند تا بتوانند روی آن کار کنند و پروژه هایی را با جریان های روشن در اولویت قرار دهند.
اگر شما یک یادگیرنده بصری هستید ، ما پوشش داده ایم. در حالی که من شما را از طریق ساخت یک خط لوله CI/CD ساده با پروژه GitHub خود www. opensauced. pizza ، من همچنین یک ویدیو دارم که می توانید تماشا کنید که می توانم این مراحل را عملی کنم و یک جریان سریع CI را برای یک پروژه دیگر از من بسازم: hot. opensauced. pizza. این ویدئو دقیقاً به شما نشان می دهد که برای شروع ساخت خط لوله CI ساده ، کجا باید بروید. اگر یک یادگیرنده بصری هستید ، آن را به آن ساعت دهید.
خوب ، بگذارید این کار را انجام دهیم.
مرحله 1: یک مخزن ایجاد یا انتخاب کنید و یک پروژه را انتخاب کنید
این ممکن است بسیار اساسی به نظر برسد ، اما اولین قدم برای ساختن خط لوله CI با اقدامات GitHub ایجاد یا انتخاب مخزن در GitHub است. شما می توانید از یک پایگاه کد پروژه موجود استفاده کنید ، یک پروژه را که دوست دارید در GitHub چنگال کنید ، یا از ابتدا شروع کنید.
به خاطر سادگی ، من می خواهم از مخزن باز شده باز در پروژه Saced Open خود استفاده کنم. با چنگ زدن به این مخزن و کمک به یک چنگال ، احساس راحتی کنید.
می بینید که مخزن سس باز نسبتاً ساده است. این وب سایت به خودی خود با Onegraph ساخته شده است ، که در NetLify میزبان است و با HTML ، CSS و JavaScript ساخته شده است. من همچنین از کتاب داستان برای UI و کار طراحی استفاده می کنم. ما همچنین از React و NPM برای مدیریت بسته ، نصب و آزمایش استفاده می کنیم - اما بعداً در مورد آن.
مرحله 2: اقدامات GitHub را در مخزن خود باز کنید تا بتوانید گردش کار CI/CD خود را شروع کنید
برای شروع ساخت خط لوله CI/CD خود ، برگه اقدامات GitHub را در نوار ناوبری برتر مخزن خود باز کنید.
شما باید لیستی از الگوهای اتوماسیون CI/CD و گردش کار را ببینید که با فناوری پروژه شما استفاده می کند (توجه داشته باشید جانبی: ما فقط این جریان کاربر را بهبود بخشیدیم. در صورت علاقه ، جزئیات را بعداً بررسی کنید).
برای این پروژه ، ما برای آزمایش ، ساخت ، مرحله و استقرار کد خود از چند گردش کار مختلف CI/CD استفاده خواهیم کرد. این شامل:
گردش کار توسعه: این گردش کار هر زمان که درخواست کشش باز شود ، ویرایش ، هماهنگ یا بازگشایی شود ، از طریق چند کار مختلف انجام می شود. این مشاغل شامل تنظیم گره ، نصب بسته ها و وابستگی های NPM ، اجرای تست NPM و دوچرخه سواری از طریق تعدادی از مشاغل لینت نیز است (گره تنظیم ، نصب NPM@آخرین ، نصب وابستگی ها ، کد خط ... شما ایده را دریافت می کنید).
YAML یک زبان نشانه گذاری است که به دلیل ماهیت دوستانه انسانی خود به عنوان یک Superset JSON به عنوان اصلی در اتوماسیون اعلامیه تبدیل شده است (از براکت ها ، بریس ها و نقل قول های بسیار کمتری نسبت به سایر انواع زبان Markup JSON استفاده می کند). می خواهید بیشتر بدانید؟این راهنما را بررسی کنید.
یک گردش کار تجزیه و تحلیل CodeQL: این گردش کار پس از ادغام آن در شعبه اصلی ، یک سری آزمایشات امنیتی CodeQL را بر روی کد ما اجرا می کند تا اطمینان حاصل شود که هیچگونه آسیب پذیری شناخته شده ای وجود ندارد. پرونده YAML را برای خودتان بررسی کنید. این بسیار ساده است ، اما مؤثر و چیزی است که من به شدت توصیه می کنم.
انتشار و ایجاد گردش کار: این گردش کار تست ها را اجرا می کند و پس از انتشار تغییرات کد در داکر و ساخت برنامه ، لینت را اجرا می کند. همچنین کد نهایی را به محیط تولید ما مستقر می کند ، نسخه ای را با استفاده از یک ساختار مشابه با یادداشت های انتشار خودکار ، قطع می کند ، سایت را به یک ظرف بسته می کند و به GHCR منتشر می کند. از آنجا ، شماره نسخه و برچسب را در مخزن می اندازد. این یکی از گردش کار پیچیده ای است که ما در حال اجرا هستیم ، و من آن را تا حدودی توضیح می دهم ، اما می توانید ببینید که کدام مشاغل و مراحل در گردش کار برای خودتان اتفاق می افتد.
یک گردش کار استقرار کتاب داستان: این گردش کار هرگونه تغییر مؤلفه UI را در وب سایت تولید ما از طریق کتاب داستان UI Tech Frontend ما مستقر می کند.
و این گردش کار ماست. نکته اینجاست که اگر شما روی یک پروژه انفرادی یا چیز دیگری کار می کنید ، ساختن یک خط لوله CI نیازی به یک روند ارعاب کننده نیست. شما می توانید با چند مورد ساده (مانند آنچه در بالا برجسته شد) شروع کنید تا گردش کار خود را کمی ساده تر کنید.
اگر در حال ساختن نرم افزار سازمانی ، حفظ یک پروژه بزرگ منبع باز یا کار با یک تیم بزرگ در هر مجموعه ای از کارها هستید ، می تواند و باید پیچیده تر از این باشد. اما اگر تازه شروع به کار کرده اید ، نگران نباشید که خط لوله CI/CD خود نیازهای یک تیم بزرگ یا پروژه بلندپروازانه را برآورده کنید - فقط این کار را برای شما انجام دهید.
می بینید که من در چند اتوماسیون گردش کار ساخته ام تا روند حفظ مخزن سس باز را ساده کنم. مورد در مورد: گردش کار انطباق (از کاربر github mtfoley) ، که هر زمان که کسی اولین درخواست کشش خود را (مطابق با دستورالعمل های مشارکت کننده ما) بر روی سس باز انجام دهد ، ایجاد می شود و برای پیوستن به سرور Discord ما برای آنها پیام می فرستد.
مرحله 3: برای ایجاد خط لوله CI/CD خود در کد خود تغییراتی ایجاد کنید
به خاطر این تمرین ، ما می خواهیم با افزودن "و پیتزا بیشتر" در پایان ، تغییر کوچکی در تیتر وب سایت ("مسیر کمک به منبع باز بعدی شما") ایجاد کنیم. نتیجه نهایی به این شکل خواهد بود: "مسیر کمک به منبع باز بعدی شما و پیتزا بیشتر."
بیایید کار کنیم
پوشه SRC را باز کنید ، و به زیر پوشه اجزای سازنده بروید. از آنجا ، شما می خواهید پرونده Hero. js را باز کنید. در آن پرونده ، به این کد بروید:
مسیر بعدی شما
متن باز
مشارکت.
با افزودن "و پیتزا بیشتر" تغییر نسخه را ایجاد کنید. می بایست شبیه به این باشه:
مسیر بعدی شما
متن باز
سهم و پیتزا بیشتر.
مرحله 4: نگاهی به Visualizer Workflow Visualizer و Live Logs بیندازید تا نگاهی کامل به نحوه عملکرد خط لوله خود داشته باشید
هنگامی که تغییر فوق را تحت فشار قرار دادید ، به قسمت سرگرم کننده شیرجه می شوید: دیدن خط لوله خود در زمان واقعی با یک Visualizer گردش کار و با سیاهههای مربوط.
خوب ، شاید این سرگرم کننده ترین قسمت نباشد ، اما دانستن نحوه استفاده از هر دو ابزار ... بعداً از من تشکر خواهید کرد.
بیایید ابتدا به Visualizer گردش کار برویم. با استفاده از صفحه اصلی Actions ، با انتخاب هرگونه گردش کار که می خواهید ببینید ، می توان یک Visualizer گردش کار را کشید. چیزی شبیه به این را پیدا خواهید کرد:
در اینجا ، می توانید ببینید که کدام شغل در یک گردش کار معین وقتی اتفاق می افتد - و اگر آنها با یک علامت چک سبز کمی کار می کنند یا نه ، یک علامت زرد برای نشان دادن اینکه آیا کاری کار می کند ، و یک علامت قرمز برای نشان دادن اینکه آیا یک کار شکست خورده است ، نشان می دهد.
این گردش کار YAML شما است ، اما به صورت بصری ، و دیدن اینکه چه اتفاقی می افتد چه زمانی و اگر کار می کند ، آسانتر می شود.
نکته حرفه ای: از آنجا که گرافیک های تجسم گردش کار برای نشان دادن سریع اقدامات موفق ، اقدامات مداوم و اقداماتی که در یک مرحله خاص انجام نشد ، پس از تنظیم یک گردش کار جدید سعی کنید و برای اولین بار آن را تحریک کنید.
اکنون ، این چیزی است که شما باید در مورد سیاهههای مربوط به آن بدانید: اول از همه ، آنها بهترین دوست شما هستند (به طور جدی). سیاهههای مربوطه برای فهمیدن دقیقاً آنچه کار می کند ، چه چیزی شکسته است ، و اینکه چرا چیزهایی که فکر می کنید باید کار می کنند ، به هیچ وجه کار نمی کنند ، بسیار مفید هستند. اما نکته جالب دیگر ، می توانید از طریق این سیاههها بروید و از طریق جدول زمانی ، سیاهههای مربوطه یا حتی خود ورود به سیستم را برای مرجع محلی بارگیری کنید.
از طریق منوی اقدامات موجود در مخزن خود و با کلیک بر روی هر کار یا گردش کار ، می توانید به گزارش های زنده مستقیماً از طریق منوی Actions در مخزن خود دسترسی پیدا کنید. اگر وقتی خط لوله CI/CD خود را ساخته اید ، همه کارها را درست انجام داده اید ، احتمالاً نیازی به نگاه کردن به سیاهههای زنده خود ندارید.
اما اگر مشکلی پیش بیاید ، این سیاهههای مربوط می توانند برای مرجع بسیار مفید باشند. این که آیا شما به دنبال Timestamps هستید یا کدام قسمت از این روند شکست خورده است ، می توانید نحوه رفع مشکل را تعیین کنید.
نکته حرفه ای: اگر در حال اشکال زدایی یک خطای حساس به زمان هستید ، می توانید Timestamps بسیار مفید باشد. به طور پیش فرض ، یک گزارش زنده کد رنگی را رنگ می کند که مشاغل شکست خورده و در یک گردش کار معین ، و این امر باعث می شود که بلافاصله مشکل را برطرف کنید.
این را با خود ببرید
این که آیا شما در حال کار بر روی یک پروژه منبع باز ، یک پروژه جانبی یا یک پروژه کاری هستید ، مزایای بزرگی برای اتخاذ CI/CD وجود دارد - مانند تولید نسخه های سازگار و کارآمدتر. اما بزرگترین فایده از همه اعتماد به این است که کد شما پس از ادغام آن در شاخه اصلی شما ، آزمایش آن و استقرار آن کار می کند.
با اقدامات GitHub ، ساختن یک خط لوله CI/CD یک فرآیند ساده است و به شما امکان می دهد به جای همه مواردی که پس از آن می آیند ، روی کد خود تمرکز کنید. آیا هیچ سوالی دارید؟یک خط در توییتر در bdougieyo به من شلیک کنید ، یا مرا در GitHub پیدا کنید.
منابع اضافی
10 اقدامات GitHub منابع برای نشانه گذاری از اصول اولیه به CI/CD
5 اتوماسیون هر توسعه دهنده باید در حال اجرا باشد
7 ویژگی پیشرفته اتوماسیون گردش کار با اقدامات GitHub
تجارت گزینه های دودویی در ایران...
ما را در سایت تجارت گزینه های دودویی در ایران دنبال می کنید