ساخت نسخههای سفارشی Caddy، مخصوصاً وقتی به ماژولهایی مثل DNS Providerها یا Transportهای مختلف نیاز دارید، معمولاً به نصب Go، راهاندازی xcaddy و تنظیم فرایند Build نیاز داره.
Caddy Builder یک GitHub Action آماده است که این مراحل رو داخل GitHub Actions انجام میده و اجازه میده باینری سفارشی Caddy رو مستقیماً در CI/CD پروژه بسازید.
با این Action میتونید نسخه Caddy و ماژولهای موردنیاز رو مشخص کنید، برای سیستمعاملها و معماریهای مختلف خروجی بگیرید و باینری ساختهشده رو در مراحل بعدی Pipeline استفاده کنید.
ویژگیها و امکانات
Caddy Builder بر پایه xcaddy کار میکنه و فرایند نصب Go و xcaddy رو هم داخل Workflow مدیریت میکنه. بنابراین نیازی نیست این ابزارها رو جداگانه روی Runner آماده کنید.
میتونید ماژولهای دلخواه رو اضافه کنید، نسخه مشخصی از Caddy رو انتخاب کنید و از قابلیتهایی مثل replace ،embed و Cross-compilation استفاده کنید.
امکان تعیین پوشه خروجی هم وجود داره و میشه برای Linux ،Windows و macOS و معماریهایی مثل amd64 ،arm64 و arm خروجی گرفت.
بعد از Build هم اطلاعاتی مثل مسیر کامل باینری، نام فایل، سیستمعامل و معماری مقصد بهعنوان Output در اختیار Workflow قرار میگیره.
در نتیجه میتونید باینری رو در Stepهای بعدی اجرا کنید، بهصورت Artifact ذخیره کنید یا از اون برای ساخت Docker Image و Release استفاده کنید.
اوپنسورس و مشارکت در پروژه
کد منبع Caddy Builder تحت لایسنس MIT منتشر شده و بهصورت عمومی در GitHub در دسترسه. خود پروژه هم از ابزارهای اوپنسورسی مثل Caddy ،xcaddy و Go استفاده میکنه.
اگر با Caddy ،GitHub Actions یا CI/CD کار میکنید و تجربهای در Build باینریهای سفارشی یا Pipelineهای چندپلتفرمی دارید، میتونید ریپازیتوری پروژه رو بررسی کنید، Exampleهای آماده اون رو ببینید و در توسعه قابلیتهای جدید مشارکت داشته باشید.
لینک پروژه گیتهاب
نویسنده: منیره سواعدی
ناظر فنی محتوا: پیمان گلی
مینتینر پروژه: علیرضا ذوالفقار