Included in every plan
Enzonic CI
Hosted pipelines for your GitHub repositories on Enzonic runners: tests and builds on every push and pull request, with caches, live logs and artifacts. CI minutes, parallel jobs and retention come with your plan.
A console built for pipelines
Runs, jobs and steps with their logs, on the same account as Deploy and Databases. Screens from the console with sample data.


What it does
Runs on every push and pull request
Connect a GitHub repository and pipelines run on pushes, tags and pull requests, on a schedule, or when you start them from the console or the API.
Matrix builds and job dependencies
Split work into jobs, fan out over a matrix and order them with needs. Service containers such as Postgres join the job's network.
Dependency caches
npm, pnpm, Yarn, Bun, pip, Go, Cargo, Maven and Gradle caches are kept per repository within your plan's cache size, so repeat runs skip most of the install.
Isolated sandboxes
Each job runs in its own gVisor sandbox on its own network, with no access to private networks or the host.
Live logs and artifacts
Follow each step as it runs, re-run failed jobs, and download artifacts while your plan keeps them.
Fixes for failed jobs
Enzica, Enzonic's assistant, can read a failed job's logs and propose a code fix you review before anything changes.
Measured against GitHub Actions
The same workflow file on both platforms, in a private benchmark repository. Medians in seconds; lower is faster.
| Step | Enzonic CI | GitHub Actions |
|---|---|---|
| Whole run, from push to every job done | 22 s | 37 s |
| Queue to start | 6 s | 9–10 s |
| Checkout | 0.06 s | 1 s |
| npm ci with an unchanged lockfile | 0.09 s | 3 s |
| go test with empty caches | 2.8 s | 20 s |
| Go job, wall time | 2 s | 11 s |
| npm ci, first install of a new lockfile | 6.8 s | 4 s |
Where we are slower: the first install of a new lockfile, because every file passes through the job sandbox. Every later run with the same lockfile takes 0.09 s. Method: medians of three runs with warm caches (the cold rows use empty caches; GitHub cold is one run), GitHub on ubuntu-latest, measured on 1 November 2026.
Configuration you already know
Write .enzonic/ci.yml, or keep the GitHub Actions workflows you have: Enzonic CI runs the supported subset and tells you about the rest.
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 testAn example. The CI reference in the docs lists every supported key and action.
CI limits per plan
CI minutes reset every month. Paid plans add more minutes, parallel jobs and longer retention.
| Feature | Free free | Starter $5/mo | Pro $10/mo | Growth $19/mo | Business $29/mo |
|---|---|---|---|---|---|
| Enzonic CI | |||||
| CI minutes | 3,000/mo | 5,000/mo | 6,000/mo | 15,000/mo | 60,000/mo |
| Concurrent jobs | 2 | 4 | 6 | 10 | 20 |
| Job timeout | 360 min | 360 min | 360 min | 480 min | 720 min |
| Dependency cache | 2 GB | 5 GB | 10 GB | 20 GB | 50 GB |
| Artifacts / logs kept | 90 / 14 days | 90 / 30 days | 90 / 30 days | 180 / 60 days | 400 / 90 days |
Questions
Is Enzonic CI included in my plan?
Do I have to rewrite my GitHub Actions workflows?
How are CI minutes counted?
Are secrets safe on pull requests from forks?
Run your first pipeline
Connect a GitHub repository on the Free plan. No card.