CI für deine GitHub-Repositories
auf Servern, die wir selbst betreiben.
Jeder Push und Pull Request führt deine Tests in einer Sandbox auf Enzonic-Hardware aus, die bereits läuft, wenn der Job eintrifft, mit Live-Logs und einem Check auf GitHub. Schreib eine kurze .enzonic/ci.yml, oder behalte die GitHub-Actions-Workflows, die du schon hast.
3.000 Minuten pro Monat gratis. Keine Karte nötig.
- CI-Minuten pro Monat
- Jobs gleichzeitig
- pro Job
- des Abhängigkeits-Caches
Alles, was eine Pipeline braucht, nichts, worum du dich kümmern musst
Runner, Services, Caches und Logs gehören zum Produkt. Du schreibst die Schritte.
Sandboxes, die schon laufen
Jeder Job bekommt seine eigene Sandbox auf Hardware, die Enzonic betreibt. Sie wird vorab gestartet und beim Eintreffen des Jobs aufgetaut.
Matrix-Jobs und needs
Teste auf Node 20 und 22 gleichzeitig und deploye erst, wenn jede Zelle bestanden hat. Jobs warten auf die Jobs, die sie brauchen.
Postgres- und Valkey-Services
Starte mit einer einzigen Zeile eine echte Datenbank neben deinen Tests, die vor dem ersten Schritt auf Bereitschaft geprüft wird.
Caches
Behalte node_modules, pip-Wheels oder Build-Ausgaben zwischen den Läufen mit einem Key, der aus deiner Lockfile gebaut wird.
Artefakte
Behalte Coverage-Berichte, Builds und Screenshots, gib sie an spätere Jobs weiter und lade sie tagelang herunter.
Live-Logs
Verfolge jeden Schritt während des Laufs, mit Farben, nach Schritten gruppiert, fehlgeschlagene Schritte sind für dich aufgeklappt.
Checks auf GitHub
Jeder Job meldet einen Check mit Annotationen am Pull Request, bereit für den Branch-Schutz.
Deine Workflows, unverändert
Ein großer Teil der GitHub-Actions-Workflows läuft unverändert: Matrix, Services, Container und die gängigen Setup-Actions.
Zeitpläne
Nächtliche Tests oder wöchentliche Abhängigkeitsprüfungen mit einer Cron-Zeile, in UTC.
Enzica behebt fehlgeschlagene Läufe
Ein Klick auf einen fehlgeschlagenen Job: Enzica findet die Ursache, pusht einen Korrektur-Branch und lässt die Pipeline darauf laufen.
Das Warten entfällt, der Lauf besteht aus deinen Schritten
Der größte Teil der CI-Zeit geht fürs Starten einer Maschine, fürs Klonen und fürs Herunterladen von Abhängigkeiten drauf. Enzonic CI erledigt diese Arbeit, bevor dein Job eintrifft.
- 01
Sandboxes werden aufgetaut, nicht gestartet
Ein Pool aus Sandboxes wird vorab gestartet. Kommt ein Job, wird eine davon aufgetaut und ihm übergeben, es muss also keine Maschine erst hochfahren.
- 02
Checkouts aus einem lokalen Spiegel
Jeder Runner hält einen Spiegel deines Repositorys und holt nur, was sich geändert hat, statt für jeden Job von GitHub zu klonen.
- 03
Caches von der lokalen Festplatte verknüpft
Abhängigkeits-Caches bleiben auf dem Runner und werden in den Job eingebunden, statt zuerst heruntergeladen und entpackt zu werden.
Jeder Job zeigt, wo seine Zeit geblieben ist: Warteschlange, Sandbox, Checkout, Abhängigkeiten, Services, Cache und Schritte.
Eine Datei in deinem Repository
Committe .enzonic/ci.yml und pushe sie. Die Jobs laufen in der Reihenfolge, die ihre needs vorgeben, Matrix-Zellen parallel, jeweils mit eigenen Services, Cache und Artefakten.
- Lint läuft zuerst, beide Testzellen starten, sobald er bestanden ist
- jede Testzelle bekommt ein eigenes Postgres auf localhost und als postgres:5432
- npm-Downloads kommen aus dem Cache, dessen Key auf package-lock.json basiert
- die Coverage wird auch dann behalten, wenn die Tests fehlschlagen
- das Deploy läuft nur auf main, mit einem Secret, das nie in den Logs erscheint
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 }}Nutzt du schon GitHub Actions?
Verbinde das Repository, dann laufen deine .github/workflows hier ohne Änderungen, solange sie nur das verwenden, was unten aufgelistet ist. Alles andere wird mit einer klaren Meldung abgelehnt, nie stillschweigend übersprungen.
Läuft unverändert
actions/checkoutDer Commit des Laufs wird immer ausgechecktactions/setup-node, setup-python, setup-go, setup-javaWähle das Job-Image; cache: fügt den Cache des Paketmanagers hinzuoven-sh/setup-bun, pnpm/action-setupBun-Image, pnpm installiertactions/cache (and /restore, /save)Ein Job-Cache, zuerst wiederhergestellt und am Ende gespeichertactions/upload-artifact, download-artifactArtefakte werden mit dem Lauf aufbewahrt und zwischen Jobs weitergereichtstrategy.matrix, needs, if, services, containerMit include / exclude und fail-fast
Nicht unterstützt
- Weitere Verwendung: Actions, Docker-Actions, zusammengesetzte Actions und wiederverwendbare Workflows
- Ausgaben von Schritten und Jobs (steps.*.outputs, needs.*.outputs)
- Windows- und macOS-Runner
- pull_request_target
Preise
CI ist in deinem Enzonic-Cloud-Tarif enthalten, demselben Tarif, der auch Deploy und Databases abdeckt. Starte mit dem kostenlosen Tarif und wechsle auf einen größeren, wenn du mehr Minuten oder größere Runner brauchst. Nur Linux-Runner.
| Jeder Cloud-Tarif enthält CI | Free 0 $ | Starter 5 $ / Monat 4,17 $ pro Monat, jährlich abgerechnet | Empfohlen Pro 10 $ / Monat 8,33 $ pro Monat, jährlich abgerechnet | Growth 19 $ / Monat 15,83 $ pro Monat, jährlich abgerechnet | Business 29 $ / Monat 24,17 $ pro Monat, jährlich abgerechnet |
|---|---|---|---|---|---|
| CI-Minuten pro Monat | 3.000 | 5.000 | 6.000 | 15.000 | 60.000 |
| Jobs gleichzeitig | 2 | 4 | 6 | 10 | 20 |
| Längster Job | 360 min | 360 min | 360 min | 480 min | 720 min |
| Dependency-Cache | 2 GB | 5 GB | 10 GB | 20 GB | 50 GB |
| Artefakte aufbewahrt | 90 Tage | 90 Tage | 90 Tage | 180 Tage | 400 Tage |
| Logs aufbewahrt | 14 Tage | 30 Tage | 30 Tage | 60 Tage | 90 Tage |
Förderungen für Macher
Du entwickelst Open Source, studierst, lehrst oder leitest eine gemeinnützige Organisation? Beantrage kostenlose Pro- oder Business-Laufzeit und Cloud-Guthaben für Deploy und Databases.
- Pro- oder Business-Tarif für bis zu ein Jahr, für Deploy und Databases zusammen
- Cloud-Guthaben, das deinem Guthaben gutgeschrieben wird
- Für dein persönliches Konto oder dein ganzes Team
- Von einem Menschen gelesen, meist innerhalb weniger Tage beantwortet
- Open Source
- Studierende
- Gemeinnützige
- Startups
- Lehrende
- Hackathons
Fragen
Was zählt als CI-Minute?
Wo laufen die Jobs?
Warum starten Jobs so schnell?
Welche Betriebssysteme können Jobs verwenden?
Kann ich meine GitHub-Actions-Workflows behalten?
Was passiert mit Secrets und Pull Requests aus Forks?
Wie kommen die Ergebnisse zu GitHub?
Was passiert, wenn ein Lauf fehlschlägt?
Muss ich meine App bei Enzonic hosten?
Welche Images kann ein Job verwenden?
Dein nächster Push kann hier laufen.
Liefere auch das Ergebnis aus: Enzonic Deploy hostet Web-Apps kostenlos.