Enzonic CI
CI برای مخزنهای GitHub شما، روی runnerهای Enzonic.
Enzonic CI تستها و ساختهای شما را در هر push و هر pull request اجرا میکند، و هر کار در sandbox جداگانهی خودش روی runnerهای Linux که Enzonic خودش اداره میکند اجرا میشود. لاگهای زنده، کش وابستگیها و artifactها روی همان حساب و طرحی هستند که Deploy و Databases دارند.
در هر طرحی گنجانده شده، از جمله Free. دقیقههای CI، کارهای موازی و مدت نگهداری همراه طرح شما هستند.

سریعتر از GitHub Actions با همان گردشکار
یک گردشکار که روی هر دو پلتفرم اجرا میشود: یک کار Node با npm ci و مجموعه آزمون vitest، و یک کار Go با go test. هرچه کمتر باشد بهتر است.
| مرحله | Enzonic CI | GitHub Actions |
|---|---|---|
| کل اجرا، از push تا پایان همه کارها (کشهای گرم) | ۲۲ s | ۳۷ s |
| Checkout | ۰٫۰۶ s | ۱ s |
| npm ci با کش گرم | ۰٫۰۹ s | ۳ s |
| go test با کشهای سرد | ۲٫۸ s | ۲۰ s |
| کار Go، از ابتدا تا انتها (کشهای گرم) | ۲ s | ۱۱ s |
جایی که کندتریم: اولین npm ci پس از تغییر lockfile به ۶٫۸ s نیاز دارد، در مقابل ۴ s در GitHub، چون هر فایلی که npm استخراج میکند از sandbox کار عبور میکند. هر اجرای بعدی با همان lockfile به ۰٫۰۹ s نیاز دارد.
در تاریخ ۱۰ آبان ۱۴۰۵ با همان فایل .github/workflows/ci.yml روی هر دو پلتفرم (GitHub روی ubuntu-latest) در یک مخزن محک اندازهگیری شد. میانه ۳ اجرا، بر حسب ثانیه؛ در اجراهای گرم، کش هر پلتفرم آماده بود. اعداد سرد GitHub از یک اجرای اول به دست آمدهاند.
پیکربندیای که از قبل میشناسید
فایل .enzonic/ci.yml را بنویسید، یا workflowهای GitHub Actions خود را نگه دارید: Enzonic CI زیرمجموعهی پشتیبانیشدهی .github/workflows را اجرا میکند و آنچه را نمیتواند اجرا کند گزارش میدهد، مانند actionهای پشتیبانینشده، runnerهای Windows یا macOS و workflowهای قابل استفادهی مجدد، همراه با پیام توضیحی.
چه چیزی اجرا را شروع میکند
- Pushها و تگها
- Pull requestها
- زمانبندیها
- اجراهای دستی از کنسول و اجراهایی که از API شروع میشوند
کارها روی runnerهای Linux اجرا میشوند. هر کار sandbox مخصوص gVisor خودش را دارد و به شبکههای خصوصی دسترسی ندارد.
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
test:
image: node:22-bookworm-slim
services:
postgres:
image: postgres:17-alpine
env:
POSTGRES_PASSWORD: postgres
env:
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
steps:
- name: Install
run: npm ci
- name: Test
run: npm testیک نمونه. مرجع CI در مستندات، هر کلید و action پشتیبانیشده را فهرست میکند.
هر push و هر pull request در یک فهرست
اجراهای همهی مخزنهای متصل با وضعیت، رویداد، شاخه، commit و مدت اجرا. فهرست وقتی چیزی در حال اجراست بهروز میشود و هر اجرا یک check در GitHub ثبت میکند.

چه کارهایی انجام میدهد
- ساختهای ماتریسی و وابستگی کارها
- کار را به چند job تقسیم کنید، روی یک ماتریس پخش کنید و ترتیب jobها را با needs مشخص کنید.
- کانتینرهای سرویس
- Postgres یا سرویس دیگری را کنار یک job راه بیندازید؛ برای مدت اجرا به شبکهی آن job میپیوندد.
- یک sandbox برای هر کار
- هر کار در sandbox مخصوص gVisor خودش و روی شبکهی خودش اجرا میشود، بدون دسترسی به شبکههای خصوصی.
- لاگهای زنده و آرتیفکتها
- هر مرحله را هنگام اجرا دنبال کنید، کارهای ناموفق را دوباره اجرا کنید و تا زمانی که طرحتان آنها را نگه میدارد، آرتیفکتها را دانلود کنید.
- Pull requestهای امن از forkها
- اجراهای مربوط به pull requestهای forkها بهطور پیشفرض هیچ secretای دریافت نمیکنند.
- رفع کارهای شکستخورده
- Enzica، دستیار Enzonic، میتواند لاگ کار شکستخورده را بخواند و یک رفع پیشنهاد کند که پیش از هر تغییری آن را بررسی میکنید.
کش وابستگیها
کشها برای هر مخزن و در حد اندازهی کش طرح شما نگه داشته میشوند.
- npm
- pnpm
- Yarn
- Bun
- pip
- Go
- Cargo
- Maven
- Gradle
محدودیتهای CI در هر طرح
دقیقههای CI هر ماه بازنشانی میشوند و برای هر کار تمامشده شمرده میشوند. طرحهای پولی دقیقه، کارهای موازی، کش بزرگتر و نگهداری طولانیتر را اضافه میکنند.
| طرح | رایگانرایگان | Starter$۵ در ماه | Pro$۱۰ در ماه | Growth$۱۹ در ماه | Business$۲۹ در ماه |
|---|---|---|---|---|---|
| دقیقههای CI | ۳٬۰۰۰ در ماه | ۵٬۰۰۰ در ماه | ۶٬۰۰۰ در ماه | ۱۵٬۰۰۰ در ماه | ۶۰٬۰۰۰ در ماه |
| کارهای همزمان | ۲ | ۴ | ۶ | ۱۰ | ۲۰ |
| مهلت هر کار | ۳۶۰ دقیقه | ۳۶۰ دقیقه | ۳۶۰ دقیقه | ۴۸۰ دقیقه | ۷۲۰ دقیقه |
| کش وابستگیها | ۲ GB | ۵ GB | ۱۰ GB | ۲۰ GB | ۵۰ GB |
| artifactهای نگهداریشده | ۹۰ روز | ۹۰ روز | ۹۰ روز | ۱۸۰ روز | ۴۰۰ روز |
| لاگهای نگهداریشده | ۱۴ روز | ۳۰ روز | ۳۰ روز | ۶۰ روز | ۹۰ روز |
- ۵۰٪ تخفیف برای اولین ماه پولی شما
- ۲۵٪ تخفیف هر ماه با یک طرح پولی بازی Enzonic
قیمتها به دلار آمریکا است. طرحهای پولی هر ماه از موجودی حساب Enzonic شما تمدید میشوند، یا وقتی موجودی تمام شده باشد با کارت. طرح رایگان هرگز کارت نمیخواهد. کنسول همیشه محدودیتهای طرح فعلی شما را نشان میدهد.
اعتبارهای Cloud
زمان رایگان Pro یا Business و تا $۵۰۰ Cloud credit برای افرادی که برای دیگران میسازند.
- Pro یا Business برای ۳، ۶ یا ۱۲ ماه
- تا $۵۰۰ Cloud credit در موجودی Enzonic شما
- یک اعتبار، Deploy، Databases، CI و محدودیتهای Rapidfile طرح را پوشش میدهد
- توسط یک انسان بررسی میشود و معمولاً ظرف چند روز پاسخ داده میشود
با فرم موجود در enzonic.dev درخواست دهید. یک حساب رایگان Enzonic کافی است و نیازی به کارت نیست.
- متنباز
- دانشجویان
- سازمانهای غیرانتفاعی
- استارتاپها
- مربیان
- هکاتونها
پرسشها
یک مخزن را متصل کنید و بگذارید push بعدی اجرا شود.
اپلیکیشن، پایگاه داده یا آپلودهایتان را هم روی Deploy قرار میدهید؟