استقرار خودکار از Git
استقرار خودکار به شما امکان میدهد با هر بار push به شاخهی مشخص در GitHub، اپلیکیشنتان روی ابرکلیک بهصورت خودکار بیلد و دیپلوی شود. بدون نیاز به دستور دستی.
پیشنیاز: اتصال حساب GitHub به پروفایل
پیش از اتصال ریپازیتوری به اپ، باید حساب GitHub خود را به ابرکلیک متصل کنید.
روش اول — داشبورد:
- وارد داشبورد شوید
- از منوی کاربری، Profile را باز کنید
- روی اتصال گیتهاب کلیک کنید
- در صفحهی GitHub، دسترسی را تأیید کنید
روش دوم — CLI:
abrclick login --provider github
پس از اتصال موفق، نام کاربری GitHub شما در بخش پروفایل نمایش داده میشود.
برای فعالسازی استقرار خودکار، حساب GitHub متصلشده باید دسترسی read به ریپازیتوری موردنظر را داشته باشد. در غیر این صورت وبهوک قادر به دریافت رویدادهای push نخواهد بود.
اتصال ریپازیتوری GitHub به اپلیکیشن
- در داشبورد، اپلیکیشن موردنظر را باز کنید
- به تب Settings بروید
- بخش GitHub Integration را پیدا کنید
- روی اتصال ریپازیتوری کلیک کنید
- ریپازیتوری و شاخه (branch) موردنظر را انتخاب کنید
- تنظیمات را ذخیره کنید
پس از ذخیره، ابرکلیک بهصورت خودکار یک وبهوک روی ریپازیتوری GitHub شما ثبت میکند.
اتصال ریپازیتوری از طریق CLI نیز ممکن است:
abrclick app update <app-slug> --repo <github-owner>/<repo-name> --branch main
نحوهی کار استقرار خودکار
پس از اتصال موفق:
- هر بار که به شاخهی تنظیمشده push میکنید، GitHub یک رویداد به وبهوک ابرکلیک ارسال میکند
- ابرکلیک کد را دریافت، بیلد و دیپلوی میکند
- لاگهای بیلد در تب Deployments قابل مشاهده هستند
- پس از موفقیت، اپ شما روی آدرس
https://<slug>.apps.abrclick.irبهروز میشود
push to main
│
▼
GitHub webhook → api.abrclick.ir/v1/webhooks/github
│
▼
Build queue (BuildKit)
│
▼
Deploy → <slug>.apps.abrclick.ir
فیلتر شاخه
فقط push به شاخهی تنظیمشده باعث اجرای بیلد میشود. push به سایر شاخهها نادیده گرفته خواهد شد.
اگر میخواهید از چند محیط (مثلاً staging و production) استفاده کنید، برای هر محیط یک اپ جداگانه با شاخههای متفاوت بسازید.
دیپلوی پیشنمایش (Preview Deploys)
ابرکلیک از دیپلوی پیشنمایش (preview/branch deploys) پشتیبانی میکند — محیطهای موقت برای هر branch.
برای فعالسازی:
- در تنظیمات GitHub Integration اپ، گزینه فعالسازی دیپلوی پیشنمایش را انتخاب کنید
- push به هر branch غیر از شاخه اصلی، یک محیط جدید با آدرس
<branch>-<app-slug>.apps.abrclick.cloudمیسازد - این محیطها موقت هستند و پس از merge یا حذف branch به صورت خودکار پاک میشوند
امنیت وبهوک
ابرکلیک تمام رویدادهای دریافتی از GitHub را با استفاده از HMAC-SHA256 اعتبارسنجی میکند.
- یک کلید مخفی (
webhook secret) هنگام ثبت وبهوک تولید و در GitHub ذخیره میشود - GitHub امضای هر درخواست را در هدر
X-Hub-Signature-256ارسال میکند - ابرکلیک امضا را با مقایسه امن (constant-time) تأیید میکند
- درخواستهای بدون امضای معتبر رد میشوند
این فرآیند کاملاً خودکار است و نیازی به پیکربندی دستی ندارد.
مشاهدهی لاگهای بیلد
پس از هر push، میتوانید وضعیت و لاگهای بیلد را دنبال کنید:
داشبورد:
- اپلیکیشن را باز کنید
- به تب Deployments بروید
- آخرین دیپلوی را انتخاب کنید تا لاگهای کامل را ببینید
CLI:
abrclick deployments list <app-slug>
abrclick deployments logs <app-slug> --deployment <deployment-id>
غیرفعالکردن استقرار خودکار
برای توقف موقت استقرار خودکار بدون حذف اتصال GitHub:
- به Settings → GitHub Integration بروید
- کلید استقرار خودکار را خاموش کنید
در این حالت وبهوک ثبتشده در GitHub باقی میماند، اما pushهای جدید بیلد جدیدی اجرا نمیکنند. برای راهاندازی مجدد، کافی است کلید را دوباره فعال کنید.
برای حذف کامل اتصال GitHub از اپ:
abrclick app update <app-slug> --repo "" --branch ""
عیبیابی
| مشکل | راهحل |
|---|---|
| پس از push، بیلد اجرا نشد | بررسی کنید push به شاخهی تنظیمشده بوده باشد |
| خطای دسترسی در وبهوک | مطمئن شوید حساب GitHub متصلشده read access به ریپازیتوری دارد |
| وبهوک در GitHub ثبت نشده | اتصال GitHub Integration را حذف و دوباره انجام دهید |
| بیلد با خطا متوقف شد | لاگهای کامل را در تب Deployments بررسی کنید |
در صورت بروز مشکل در ثبت وبهوک، میتوانید از طریق Settings → GitHub Integration → بازنشانی وبهوک اقدام کنید تا وبهوک مجدداً روی ریپازیتوری ثبت شود.