پیشنمایش Pull Request
وقتی در GitHub یک Pull Request باز میکنید، گردو برای آن یک سرویس پیشنمایش جدا میسازد: همان سرویس، ولی ساختهشده از شاخهٔ PR و با آدرس خودش. همتیمیها میتوانند قبل از merge تغییر را واقعاً ببینند و امتحان کنند.
کی ساخته میشود
پیشنمایش برای هر سرویسی ساخته میشود که:
- از GitHub مستقر شده باشد (GitLab و آدرس دستی پیشنمایش ندارند)؛
- استقرار خودکارش روشن باشد؛
- به همان مخزنی وصل باشد که PR در آن باز شده.
اگر چند سرویس از یک مخزن دارید (مثلاً web و api در یک monorepo)، برای هر کدام یک پیشنمایش ساخته میشود.
چرخهٔ عمر
| در GitHub | در گردو |
|---|---|
| PR باز شد | یک محیط پیشنمایش برای PR و یک سرویس به نام <نام سرویس> (PR #12) ساخته میشود |
| push تازه روی شاخهٔ PR | سرویس پیشنمایش دوباره ساخته میشود |
| PR بسته یا merge شد | سرویس و محیط پیشنمایش حذف میشوند |
| PR دوباره باز شد | پیشنمایش دوباره ساخته میشود |
وضعیت ساخت پیشنمایش با نام gerdoo/deploy کنار کامیت در صفحهٔ PR نمایش داده میشود.
چه چیزی کپی میشود
سرویس پیشنمایش تنظیمات سرویس اصلی را میگیرد: استک، دستورهای ساخت و اجرا، پوشهٔ ریشه، پورت و متغیرهای خود سرویس. دامنههای اختصاصی و دیسکها کپی نمیشوند؛ پیشنمایش آدرس پیشفرض خودش را دارد و دیسکش خالی شروع میشود.
اگر آدرس دیتابیس production را مستقیم در متغیرهای خود سرویس نوشتهاید (نه از طریق اتصال افزونه)، پیشنمایش هم به همان دیتابیس production وصل میشود و migrationهای شاخهٔ PR روی دادهٔ واقعی اجرا میشوند. آدرسهای حساس را به عنوان متغیر محیط در محیط production تعریف کنید تا به پیشنمایش نرسند.
هزینه
سرویس پیشنمایش مثل هر سرویس دیگر بر اساس مصرف حساب میشود، تا وقتی PR باز است. PRهای کهنهای را که دیگر لازم نیست ببندید تا پیشنمایششان حذف شود.
اگر برای یک سرویس پیشنمایش نمیخواهید، فعلاً تنها راه خاموش کردن استقرار خودکار آن سرویس است.
در سایت گردوامکانات سکوی ابری گردو