Skip to content

Enzonic CI

CI برای مخزن‌های GitHub شما، روی runnerهای Enzonic.

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

در هر طرحی گنجانده شده، از جمله Free. دقیقه‌های CI، کارهای موازی و مدت نگهداری همراه طرح شما هستند.

Enzonic CI: pipelineهای سه مخزن با آخرین اجراهایشان و توضیح یک مشکل پیکربندی

سریع‌تر از GitHub Actions با همان گردش‌کار

یک گردش‌کار که روی هر دو پلتفرم اجرا می‌شود: یک کار Node با npm ci و مجموعه آزمون vitest، و یک کار Go با go test. هرچه کمتر باشد بهتر است.

مرحلهEnzonic CIGitHub Actions
کل اجرا، از push تا پایان همه کارها (کش‌های گرم)۳۷ s
Checkout۱ s
npm ci با کش گرم۳ s
go test با کش‌های سرد۲۰ s
کار Go، از ابتدا تا انتها (کش‌های گرم)۱۱ 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 خودش را دارد و به شبکه‌های خصوصی دسترسی ندارد.

.enzonic/ci.yml
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 ثبت می‌کند.

Enzonic CI: اجراهای هر pipeline با وضعیت، شاخه، commit و مدت اجرا

چه کارهایی انجام می‌دهد

ساخت‌های ماتریسی و وابستگی کارها
کار را به چند 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 شما تمدید می‌شوند، یا وقتی موجودی تمام شده باشد با کارت. طرح رایگان هرگز کارت نمی‌خواهد. کنسول همیشه محدودیت‌های طرح فعلی شما را نشان می‌دهد.

همه‌ی محدودیت‌ها را در enzonic.dev مقایسه کنید

اعتبارهای Cloud

زمان رایگان Pro یا Business و تا ‎$۵۰۰ Cloud credit برای افرادی که برای دیگران می‌سازند.

  • Pro یا Business برای ۳، ۶ یا ۱۲ ماه
  • تا ‎$۵۰۰ Cloud credit در موجودی Enzonic شما
  • یک اعتبار، Deploy، Databases، CI و محدودیت‌های Rapidfile طرح را پوشش می‌دهد
  • توسط یک انسان بررسی می‌شود و معمولاً ظرف چند روز پاسخ داده می‌شود

با فرم موجود در enzonic.dev درخواست دهید. یک حساب رایگان Enzonic کافی است و نیازی به کارت نیست.

  • متن‌باز
  • دانشجویان
  • سازمان‌های غیرانتفاعی
  • استارتاپ‌ها
  • مربیان
  • هکاتون‌ها

پرسش‌ها

معمولاً نه. Enzonic CI فایل .enzonic/ci.yml یا زیرمجموعه‌ی پشتیبانی‌شده‌ی .github/workflows را می‌خواند. مراحلی که نمی‌تواند اجرا کند، مانند runnerهای Windows و macOS و workflowهای قابل استفاده‌ی مجدد، با پیام روشن گزارش می‌شوند، به جای اینکه بی‌صدا شکست بخورند.

یک مخزن را متصل کنید و بگذارید push بعدی اجرا شود.

اپلیکیشن، پایگاه داده یا آپلودهایتان را هم روی Deploy قرار می‌دهید؟