GitHub depoların için CI
kendi işlettiğimiz sunucularda.
Her push ve pull request, testlerini iş geldiğinde zaten çalışan Enzonic donanımındaki bir sandbox'ta çalıştırır; canlı loglar ve GitHub'da bir kontrol ile. Kısa bir .enzonic/ci.yml yaz veya mevcut GitHub Actions iş akışlarını koru.
Ayda 3.000 dakika ücretsiz. Kart gerekmez.
- Aylık CI dakikası
- aynı anda iş
- iş başına
- bağımlılık önbelleğinin
Bir pipeline'ın ihtiyaç duyduğu her şey, takip edilecek bir şey yok
Runner'lar, servisler, önbellekler ve loglar ürünün bir parçası. Sen yalnızca adımları yazarsın.
Zaten çalışan sandbox'lar
Her iş, Enzonic'in işlettiği donanımda kendi sandbox'ını alır; önceden başlatılır ve iş geldiğinde hazır hale getirilir.
Matris işleri ve needs
Node 20 ve 22'de aynı anda test et, ardından yalnızca her hücre geçtiğinde deploy et. İşler ihtiyaç duydukları işleri bekler.
Postgres ve Valkey servisleri
Testlerinin yanında tek satırla gerçek bir veritabanı başlat; ilk adımdan önce sağlık kontrolü yapılır.
Önbellekler
node_modules, pip wheel'leri veya derleme çıktısını, lockfile'ından oluşturulan bir anahtarla çalıştırmalar arasında sakla.
Artifact'ler
Kapsam raporlarını, derlemeleri ve ekran görüntülerini sakla, sonraki işlere aktar ve günlerce indirilebilir tut.
Canlı loglar
Her adımı çalışırken renkli olarak izle; adımlara göre gruplanmış, başarısız adımlar senin için açık.
GitHub'da kontroller
Her iş, pull request üzerinde açıklamalarla birlikte bir kontrol bildirir; dal koruması için hazırdır.
İş akışların, değişmeden
GitHub Actions iş akışlarının büyük bölümü olduğu gibi çalışır: matris, servisler, konteynerler ve yaygın kurulum action'ları.
Zamanlamalar
UTC cinsinden bir cron satırıyla gece testleri veya haftalık bağımlılık kontrolleri.
Enzica başarısız çalıştırmaları düzeltir
Başarısız bir işte tek tıklama: Enzica nedeni bulur, bir düzeltme dalı push eder ve pipeline'ı onda çalıştırır.
Bekleme ortadan kalktı, yani çalıştırma senin adımlarından ibaret
CI süresinin çoğu bir makine başlatmaya, klonlamaya ve bağımlılıkları indirmeye gider. Enzonic CI bu işi, işin gelmesinden önce yapar.
- 01
Sandbox'lar açılmaz, hazır hale getirilir
Sandbox havuzu önceden başlatılır. Bir iş geldiğinde hazır bir sandbox çözülür ve ona verilir; bu yüzden başlatılacak bir makine yoktur.
- 02
Checkout'lar yerel bir aynadan yapılır
Her runner deponun bir aynasını tutar ve her iş için GitHub'dan klonlamak yerine yalnızca değişenleri çeker.
- 03
Önbellekler yerel diskten bağlanır
Bağımlılık önbellekleri runner üzerinde kalır ve işe bağlanır; önce indirilip açılmazlar.
Her iş, süresinin nereye gittiğini gösterir: kuyruk, sandbox, checkout, bağımlılıklar, servisler, önbellek ve adımlar.
Deponda tek bir dosya
.enzonic/ci.yml dosyasını commit et ve push et. İşler needs ile belirlenen sırayla çalışır; matris hücreleri paralel çalışır ve her birinin kendi servisleri, önbelleği ve artifact'leri olur.
- lint önce çalışır; geçtiğinde her iki test hücresi başlar
- her test hücresi localhost üzerinde ve postgres:5432 olarak kendi Postgres'ini alır
- npm indirmeleri package-lock.json anahtarlı önbellekten gelir
- testler başarısız olsa bile kapsam korunur
- deploy yalnızca main'de çalışır, loglarda hiç gösterilmeyen bir gizli diziyle
name: CI
on:
push:
branches: [main]
pull_request:
jobs:
lint:
image: node:22
steps:
- run: npm ci
- run: npm run lint
test:
needs: lint
image: node:${{ matrix.node }}
matrix:
node: [20, 22]
services:
postgres:
image: postgres:17-alpine
env: { POSTGRES_PASSWORD: postgres }
env:
DATABASE_URL: postgres://postgres:postgres@postgres:5432/postgres
cache:
key: npm-${{ hashFiles('package-lock.json') }}
paths: [~/.npm]
steps:
- run: npm ci
- run: npm test
artifacts:
- name: coverage-node${{ matrix.node }}
paths: [coverage/]
when: always
deploy:
needs: test
if: github.ref == 'refs/heads/main'
steps:
- run: npx enzonic deploy --prod
env:
ENZONIC_TOKEN: ${{ secrets.DEPLOY_TOKEN }}Zaten GitHub Actions kullanıyor musun?
Depoyu bağla; aşağıda listelenenleri kullandıkları sürece .github/workflows dosyaların burada değişiklik yapılmadan çalışır. Diğer her şey açık bir mesajla reddedilir, sessizce atlanmaz.
Olduğu gibi çalışır
actions/checkoutÇalıştırmanın commit'i her zaman checkout ediliractions/setup-node, setup-python, setup-go, setup-javaİş imajını seç; cache: paket yöneticisi önbelleğini ekleroven-sh/setup-bun, pnpm/action-setupBun imajı, pnpm kuruluactions/cache (and /restore, /save)İş önbelleği: önce geri yüklenir, en sonda kaydediliractions/upload-artifact, download-artifactArtifact'ler çalıştırmayla birlikte saklanır ve işler arasında aktarılırstrategy.matrix, needs, if, services, containerinclude / exclude ve fail-fast dahil
Desteklenmiyor
- Diğer kullanımlar: action'lar, Docker action'ları, bileşik action'lar ve yeniden kullanılabilir iş akışları
- Adım ve iş çıktıları (steps.*.outputs, needs.*.outputs)
- Windows ve macOS runner'ları
- pull_request_target
Fiyatlandırma
CI, Deploy ve Databases'i kapsayan Enzonic Cloud planınla birlikte gelir. Ücretsiz planla başla; daha fazla dakikaya veya daha büyük runner'lara ihtiyacın olduğunda yükselt. Yalnızca Linux runner'lar.
| Her Cloud planında CI dahildir | Free $0 | Starter $5 / ay Yıllık faturalandırmayla ayda $4,17 | Önerilen Pro $10 / ay Yıllık faturalandırmayla ayda $8,33 | Growth $19 / ay Yıllık faturalandırmayla ayda $15,83 | Business $29 / ay Yıllık faturalandırmayla ayda $24,17 |
|---|---|---|---|---|---|
| Aylık CI dakikası | 3.000 | 5.000 | 6.000 | 15.000 | 60.000 |
| Aynı anda iş | 2 | 4 | 6 | 10 | 20 |
| En uzun iş | 360 dk | 360 dk | 360 dk | 480 dk | 720 dk |
| Bağımlılık önbelleği | 2 GB | 5 GB | 10 GB | 20 GB | 50 GB |
| Saklanan artifact'ler | 90 gün | 90 gün | 90 gün | 180 gün | 400 gün |
| Saklanan loglar | 14 gün | 30 gün | 30 gün | 60 gün | 90 gün |
Geliştiriciler için hibeler
Açık kaynak mı geliştiriyorsun, okuyor, öğretiyor ya da kâr amacı gütmeyen bir kuruluş mu yürütüyorsun? Deploy ve Veritabanları için ücretsiz Pro veya Business süresi ile Cloud kredisi başvurusu yap.
- Deploy ve Veritabanları için birlikte, bir yıla kadar Pro veya Business planı
- Cloud kredisi bakiyene eklenir
- Kişisel hesabın veya tüm ekibin için
- Bir insan okur, genellikle birkaç gün içinde yanıtlanır
- Açık kaynak
- Öğrenciler
- Kâr amacı gütmeyenler
- Girişimler
- Eğitmenler
- Hackathon'lar
Sorular
CI dakikası neyi sayar?
İşler nerede çalışır?
İşler neden bu kadar hızlı başlıyor?
İşler hangi işletim sistemlerini kullanabilir?
GitHub Actions iş akışlarımı tutabilir miyim?
Gizli diziler ve fork'lardan gelen pull request'lerle ne olur?
Sonuçlar GitHub'a nasıl ulaşır?
Bir çalıştırma başarısız olursa ne olur?
Uygulamamı Enzonic'te barındırmam gerekir mi?
Bir iş hangi imajları kullanabilir?
Bir sonraki push'un burada çalışabilir.
Sonucu da yayınla: Enzonic Deploy web uygulamalarını ücretsiz barındırır.