نحوه ادغام گیت هاب و CI/CD در گردش کار آژانس وب شما

به عنوان یک مالک محصول برای Deploy Now، با آژانس های زیادی مصاحبه کرده ام. تقریباً نیمی از آنها از ابزارهایی مانند GitHub برای همکاری در کد خود استفاده می کنند. اقلیت با خطوط لوله CI/CD کار می کنند. چرا؟ خوب، زیرا آنها لزوماً نیازی ندارند. متوسط پروژه مشتری نسبتاً کوچک است: شاید یک صفحه فرود با بخش وبلاگ. یک توسعه دهنده به راحتی می تواند پروژه را به صورت محلی توسعه دهد و سپس آن را از طریق SSH برای بررسی نهایی توسط مشتری آپلود کند. آوردن مهارت های جدید به تیم و خودکار کردن فرآیندها یک سرمایه گذاری است. به عنوان یک آژانس کوچکتر، باید تصمیم بگیرید که آیا کار بر روی پروژه مشتری دیگری تصمیم عاقلانه تری است یا خیر.
با این حال، من قویاً معتقدم که سرمایهگذاری در گردشهای کاری تیم GitHub و CI/CD میتواند یک تغییر بازی برای آژانس شما باشد. یک دنیای کامل برای کاوش برای تیم شما وجود دارد. احتمالاً بعد از چند هفته شاهد افزایش کارایی، کیفیت کد و رضایت مشتری خواهید بود. GitHub و CI/CD اکوسیستمهایی در حال رشد با ابزارهای بیشتر و بیشتری هستند که موانع کار با آنها را کاهش میدهند.
اگر تصمیم دارید با آژانس خود این مسیر را طی کنید، به شما پیشنهاد می کنم مراحل زیر را انجام دهید. می توانید برای هر کدام به اندازه ای که برای شما و تیمتان مناسب است وقت بگذارید.
1. تیم خود را در بهترین شیوه های Git آموزش دهید
هر یک از اعضای تیمی که روی کد کار میکنند و در حالت ایدهآل نیز سهامداران اطراف مانند طراحان و نویسندگان، باید با این مفاهیم آشنا باشند:
- کنترل نسخه
- مخازن محلی و راه دور
- شعبه و کشش درخواست
-
Git clone
،git checkout
،git add
،git commit
وgit push
در پیوست جامع ما به Git بیشتر بخوانید.
پس از یادگیری این مفاهیم، با تیم خود در مورد نحوه به کارگیری آنها صحبت کنید. یک سازمان GitHub ایجاد کنید و شروع به آزمایش کنید.
2. مجموعه ای از مخازن نمونه بسازید
هیچ کس هر پروژه مشتری را از ابتدا شروع نمی کند. مهم نیست که با کدام پشته فناوری کار می کنید، مخازن بی شماری با کد نمونه در GitHub پیدا خواهید کرد. بنابراین ارزش آن را دارد که به دنبال قطعات قابل استفاده مجدد برای پروژه های مشتری خود باشید. البته، همیشه نقض احتمالی حق چاپ و کیفیت کد را بررسی کنید.
ممکن است در نهایت مجموعه ای از مخازن را برای موارد استفاده مختلف مانند صفحات فرود، وبلاگ ها، فروشگاه ها یا پورتال ها در سازمان GitHub خود نگهداری کنید. اینها به عنوان نقاط شروع عالی هستند که می توانید برای پروژه های جدید شبیه سازی کنید.
3. اولین خط لوله CI/CD کار را راه اندازی کنید
گام بعدی این است که آنچه را که در مخزن شما وجود دارد، مستقر کنید. در حالت ایده آل، هر فشار git به شاخه اصلی شما منجر به یک خودکار می شود ساختن و گسترش به نوعی زیرساخت از آنجایی که شما در حال حاضر با GitHub کار می کنید، بسیار منطقی است که به GitHub Actions اجازه دهید این کار را انجام دهد. برای کسب اطلاعات بیشتر در مورد این ابزار، میتوانید مقدمه ما در GitHub Actions را بخوانید.
مراحل ساخت و استقرار در یک فایل yaml مشخص شده است که گردش کار GitHub Actions شما را شرح می دهد. GitHub هر بار که گردش کار راه اندازی می شود مراحل ساخت شما را بر روی ماشین های مجازی خود اجرا می کند، به عنوان مثال توسط یک git push
. برای استقرار موفقیت آمیز وب سایت خود، باید با نوعی زیرساخت احراز هویت کنید.
اگر با مولدهای سایت ایستا، برنامه های تک صفحه ای یا برنامه های PHP کار می کنید، Deploy Now می تواند این روند را آسان کند. به سادگی یک مخزن را متصل کنید، مراحل ساخت خود را مشخص کنید و Deploy Now گردش کار، میزبانی و TLS را برای شما تنظیم می کند.
4. برای برخی از تکرارها به فرآیند عادت کنید
اکنون، قسمت سرگرم کننده شروع می شود. هر یک از اعضای تیم میتواند شعبهها را باز کند، به صورت محلی روی آن کار کند، تغییرات را فشار دهد و یک درخواست کشش را به سمت اصلی باز کند تا شخص دیگری آن را بررسی کند. هنگامی که درخواست کشش پذیرفته شد، می توانید سایت خود را در حال ساخت، استقرار و پخش زنده تماشا کنید.
این در حال حاضر یک راهاندازی بسیار مناسب برای کار بر روی برخی از پروژههای مشتری و تنظیم دقیق گردشهای کاری شما در اینجا و آنجا است. تمام مراحل زیر را می توان به عنوان پسوند اختیاری مشاهده کرد.
5. مرحله بندی و تست های خودکار را به گردش کار خود اضافه کنید
حتی اگر کسی اکنون کد را قبل از ادغام با اصلی بررسی می کند، شما هنوز 100% مطمئن نیستید که آیا کد مطابق انتظار کار می کند یا خیر. برای کاهش این مشکل، می توانید تست های خودکار را به گردش کار CI/CD خود اضافه کنید. من در اینجا توضیح دادم که چگونه می توانید تست های Lighthouse را در GitHub Actions اجرا و تجسم کنید.
با این حال، فرآیندهای QA به سختی به طور کامل خودکار هستند. محیطهای مرحلهبندی به شما این امکان را میدهند که پیشنمایش دستی وبسایتها را قبل از انتشار آنها مشاهده کنید. اگر قبلاً با چندین شعبه کار می کنید، چرا آنها را همانطور که شعبه اصلی خود را مستقر می کنید، مستقر نکنید؟ بسیاری از ابزارهای میزبانی مانند Deploy Now یک ویژگی خارج از جعبه را بدون هزینه اضافی برای این کار ارائه می دهند. به سادگی یک شعبه جدید باز کنید و در حال اجرا شدن آن تحت یک URL-پیش نمایش ببینید. اگر وب سایت خوب به نظر می رسد، تغییرات خود را در شاخه اصلی ادغام کنید. در اینجا 5 دلیل وجود دارد که چگونه فرآیندهای مرحلهبندی میتواند به موفقیت بیشتر آژانس شما کمک کند.
6. مشتریان را در فرآیندهای عرضه بگنجانید
اکنون میتوانید کدهای مربوط به یک شاخه را بهروزرسانی کنید، آن را برای پیشنمایش مرحلهبندی کنید، و سپس آن را برای تولید عرضه کنید. شما می توانید دو کار انجام دهید تا مشتری خود را بخشی از این پروژه کنید:
- دسترسی آنها را به محیط های مرحله بندی خود فراهم کنید تا بتوانند به روز رسانی ها را نیز بررسی کنند. این به ویژه قبل از شروع زندگی اولیه شما مفید است. حتی میتوانید از ابزارهایی مانند مشکلات GitHub برای جمعآوری بازخورد مشتری درست در GitHub استفاده کنید.
- در صورت استقرار در تولید، برای آنها اعلان ارسال کنید. شما به راحتی می توانید این کار را در گردش کار GitHub Actions خود به طور خودکار انجام دهید، به عنوان مثال با استفاده از اقدام اعلان Slack از بازار GitHub Actions.
7. هم افزایی بین پروژه های مشتری را فعال کنید
ما در مورد ایجاد مجموعهای از مخازن آغازین صحبت کردهایم که میتوانید آنها را برای پروژههای جدید در مرحله ۲ شبیهسازی کنید. اما آیا این عالی نیست که به جای توزیع کد در بسیاری از مخازن، برای پروژههای مشابه، کدهای مورد استفاده مجدد را متمرکز نگه دارید؟ متمرکزسازی، توزیع بهروزرسانیها را در تمام پروژههای شما در طول چرخه عمر پروژه بسیار کارآمد میکند.
اگر پروژه های شما به اندازه کافی شبیه یکدیگر هستند، پیشنهاد می کنم کد آنها را در یک مخزن نگهداری کنید و برای سفارشی کردن آنها از فایل های دائمی و محتوای پایگاه داده استفاده کنید. دومی تحت تأثیر استقرارهای جدید قرار نخواهد گرفت. میتوانید در اینجا بخوانید که چگونه یک کاربر Deploy Now از یک مخزن به چندین محیط با استفاده از ویژگی Multi Deployments مستقر میشود.
برای شما و تیمتان آرزوی سرگرمی و موفقیت در کاوش دارم!