Enzonic CI
CI for your GitHub repositories, on Enzonic runners.
Enzonic CI runs your tests and builds on every push and pull request, each job in its own sandbox on Linux runners Enzonic operates. Live logs, dependency caches and artifacts, on the same account and plan as Deploy and Databases.
Included in every plan, Free too. CI minutes, parallel jobs and retention come with your plan.

Faster than GitHub Actions on the same workflow
One workflow, run on both platforms: a Node job with npm ci and a vitest suite, and a Go job with go test. Lower is better.
| Step | Enzonic CI | GitHub Actions |
|---|---|---|
| Whole run, from push to every job done (warm caches) | 22 s | 37 s |
| Checkout | 0.06 s | 1 s |
| npm ci with a warm cache | 0.09 s | 3 s |
| go test with cold caches | 2.8 s | 20 s |
| Go job, start to finish (warm caches) | 2 s | 11 s |
Where we are slower: the first npm ci after a lockfile change takes 6.8 s, against 4 s on GitHub, because every file npm extracts passes through the job's sandbox. Every later run with the same lockfile takes 0.09 s.
Measured on November 1, 2026 with the same .github/workflows/ci.yml on both platforms (GitHub on ubuntu-latest), in a benchmark repository. Medians of 3 runs, in seconds; warm runs had each platform's caches in place. GitHub's cold figures come from a single first run.
Configuration you already know
Write .enzonic/ci.yml, or keep your GitHub Actions workflows: Enzonic CI runs a supported subset of .github/workflows and reports what it cannot run, such as unsupported actions, Windows or macOS runners and reusable workflows, with a message.
What starts a run
- Pushes and tags
- Pull requests
- Schedules
- Manual runs from the console and runs started from the API
Jobs run on Linux runners. Each job gets its own gVisor sandbox with no access to private networks.
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.
Every push and pull request in one list
Runs of every connected repository with their status, event, branch, commit and duration. The list refreshes while something is running, and each run reports a check on GitHub.

What it does
- Matrix builds and job dependencies
- Split work into jobs, fan out over a matrix and order jobs with needs.
- Service containers
- Start Postgres or another service next to a job; it joins the job's network for the length of the run.
- One sandbox per job
- Each job runs in its own gVisor sandbox on its own network, with no access to private networks.
- Live logs and artifacts
- Follow each step as it runs, re-run the jobs that failed, and download artifacts while your plan keeps them.
- Safe pull requests from forks
- Runs for pull requests from forks get no secrets by default.
- Fixes for failed jobs
- Enzica, Enzonic's assistant, can read a failed job's logs and propose a fix that you review before anything changes.
Dependency caches
Caches are kept per repository within your plan's cache size.
- npm
- pnpm
- Yarn
- Bun
- pip
- Go
- Cargo
- Maven
- Gradle
CI limits per plan
CI minutes reset every month and are counted per finished job. Paid plans add minutes, parallel jobs, a larger cache and longer retention.
| Plan | FreeFree | Starter$5 a month | Pro$10 a month | Growth$19 a month | Business$29 a month |
|---|---|---|---|---|---|
| CI minutes | 3,000 a month | 5,000 a month | 6,000 a month | 15,000 a month | 60,000 a month |
| Jobs at the same time | 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 kept | 90 days | 90 days | 90 days | 180 days | 400 days |
| Logs kept | 14 days | 30 days | 30 days | 60 days | 90 days |
- 50% off your first paid month
- 25% off every month with a paid Enzonic game plan
Prices in US dollars. Paid plans renew monthly from your Enzonic balance, or by card when the balance is empty. The free plan never asks for a card. The console always shows the limits of your current plan.
Cloud grants
Free Pro or Business time and up to $500 of Cloud credit for people who build for others.
- Pro or Business for 3, 6 or 12 months
- Up to $500 of Cloud credit on your Enzonic balance
- One grant covers Deploy, Databases, CI and the plan's Rapidfile limits
- Read by a person, usually answered within a few days
Apply with the form on enzonic.dev. A free Enzonic account is all you need, and no card.
- Open source
- Students
- Non-profits
- Startups
- Educators
- Hackathons
Questions
Connect a repository and let the next push run.
Deploying the app, hosting its database or its uploads too?