شروع
ریپازیتوریهای Git
GitHub یا GitLab را به تیم متصل کنید و پروژه را به یک ریپازیتوری ببندید. هر push بیلد و مستقر میشود؛ بینیاز از CLI.
اتصال حساب#
در داشبورد: تنظیمات ← Git، یا هنگام «پروژهٔ جدید ← وارد کردن یک ریپازیتوری». فقط مالک و ادمین تیم حساب وصل یا جدا میکنند.
- GitHub: برنامهٔ ما را روی حساب یا سازمان نصب میکنید و ریپازیتوریهایی را که میخواهید برمیگزینید. هر نصب فقط به یک تیم تعلق دارد.
- GitLab (gitlab.com): با OAuth تایید میکنید.
- GitLab خودمیزبان: آدرس https آن را میدهید. اگر این پلتفرم برای آن آدرس برنامهای ندارد، در GitLab خودتان یک برنامهٔ OAuth ایجاد کنید (محدودهٔ api، آدرس بازگشت: همان که پلتفرم نشان میدهد) و شناسه و سکرتش را بدهید.
نمونه
cloudhost git connect github
cloudhost git connect gitlab --url https://git.example.com --application <id> # the secret on stdin
cloudhost git connectionsمتصل کردن پروژه#
پروژهای جدید از ریپازیتوری ایجاد کنید یا پروژهٔ موجود را به ریپازیتوری ببندید. هر پروژه یک ریپازیتوری دارد؛ یک ریپازیتوری میتواند چند پروژه ایجاد کند (مثلاً در یک monorepo).
نمونه
cloudhost git repos acme
cloudhost apps git import shop acme acme/shop
cloudhost apps git link docs acme acme/docs --branch release
cloudhost apps git show shop
cloudhost apps git unlink docsبا هر push چه میشود#
- push به شاخهٔ پروداکشن (پیشفرض: شاخهٔ پیشفرض ریپازیتوری)، پروداکشن را مستقر میکند.
- push به هر شاخهٔ دیگر یک پیشنمایش در <شاخه>--<نام> بیلد میکند، با دیتابیس و متغیرهای پیشنمایش. میتوانید پیشنمایشها را در تنظیمات پروژه خاموش کنید.
- نامهای main و master و production همیشه تولیدند؛ اگر شاخهٔ پروداکشن چیز دیگری است، push به آنها بیلد نمیشود.
- pull request از fork بیلد نمیشود، چون کد آن با متغیرهای پروژه اجرا میشد.
- حذف شاخه، پیشنمایش آن را حذف میکند. یک کامیت که ساخته یا در حال بیلد است دوباره بیلد نمیشود.
برای بیلد فوری یک شاخه: «بیلد همین حالا» در تنظیمات Git پروژه یا:
نمونه
cloudhost apps git deploy shop --branch feature/cart
cloudhost apps builds shopوضعیت روی کامیت و pull request#
هر بیلد یک وضعیت روی کامیت مینویسد (در حال بیلد، آماده، ناموفق) با لینک به صفحهٔ استقرار. برای pull request (در GitLab: merge request) یک نظر نوشته و با پیشرفت بیلد بهروز میشود؛ لینک پیشنمایش در آن است.
امنیت#
- Git ما را با یک وبهوک امضاشده خبر میکند؛ امضا (GitHub: HMAC-SHA256، GitLab: توکن اختصاصی هر پروژه) پیش از هر کاری بررسی میشود.
- ریپازیتوری داخل سندباکس بیلد clone میشود، با توکن کوتاهمدت و فقطخواندنی (GitHub: فقط همان ریپازیتوری، حدود یک ساعت). این توکنها هیچجا ذخیره نمیشوند و به لاگ بیلد نمیرسند، و پس از clone از محیط بیلد برداشته میشوند.
- GitLab توکن را نمیتواند به یک ریپازیتوری محدود کند؛ توکن دسترسی کوتاهمدت شما بهکار میرود. توکنهای بهروزرسانی GitLab رمزشده با کلید تیم نگه داشته میشوند چون باید بچرخند.
- با جدا کردن حساب (یا برداشتن برنامه در GitHub)، بیلد خودکار متوقف میشود؛ استقرارهای قبلی میمانند.