CI per i tuoi repository GitHub
su server gestiti direttamente da noi.
Ogni push e pull request esegue i tuoi test in una sandbox su hardware Enzonic, già in funzione quando arriva il job, con log in tempo reale e un check su GitHub. Scrivi un breve .enzonic/ci.yml, oppure mantieni i workflow di GitHub Actions che hai già.
3000 minuti al mese gratis. Nessuna carta.
- Minuti CI al mese
- job alla volta
- per job
- di cache delle dipendenze
Tutto ciò che serve a una pipeline, senza doverla tenere d’occhio
Runner, servizi, cache e log fanno parte del prodotto. Tu scrivi i passaggi.
Sandbox già in funzione
Ogni job ottiene la propria sandbox su hardware gestito da Enzonic, avviata in anticipo e scongelata quando arriva il job.
Job matrix e needs
Test su Node 20 e 22 insieme, poi deploy solo quando ogni cella è passata. I job attendono i job di cui hanno bisogno.
Servizi Postgres e Valkey
Avvia un database vero accanto ai test con una sola riga, con controllo dello stato prima del primo passaggio.
Cache
Conserva node_modules, i wheel di pip o l’output di build tra un’esecuzione e l’altra, con una chiave costruita dal tuo lockfile.
Artifact
Conserva report di copertura, build e screenshot, passali ai job successivi e scaricali per giorni.
Log in tempo reale
Segui ogni passaggio mentre gira, con i colori, raggruppato per passaggio, con i passaggi in errore già aperti per te.
Check su GitHub
Ogni job invia un check con annotazioni sulla pull request, pronto per la protezione del branch.
I tuoi workflow, invariati
Gran parte dei GitHub Actions funziona così com’è: matrix, servizi, container e le azioni di setup più comuni.
Pianificazioni
Test notturni o controlli settimanali delle dipendenze con una riga cron, in UTC.
Enzica corregge le esecuzioni fallite
Un clic su un job fallito: Enzica trova la causa, fa push di un branch di correzione ed esegue la pipeline su di esso.
L’attesa è finita, quindi l’esecuzione sono i tuoi passaggi
Gran parte del tempo della CI va per avviare una macchina, clonare e scaricare le dipendenze. Enzonic CI fa questo lavoro prima che arrivi il tuo job.
- 01
Le sandbox si scongelano, non si avviano
Un pool di sandbox viene avviato in anticipo. Quando arriva un job, ne viene scongelata una e assegnata al job, quindi non c’è nessuna macchina da avviare.
- 02
Checkout da un mirror locale
Ogni runner mantiene un mirror del tuo repository e scarica solo ciò che è cambiato, invece di clonare da GitHub per ogni job.
- 03
Cache collegate dal disco locale
Le cache delle dipendenze restano sul runner e vengono collegate al job, senza essere scaricate e decompresse prima.
Ogni job mostra dove è andato il suo tempo: coda, sandbox, checkout, dipendenze, servizi, cache e passaggi.
Un file nel tuo repository
Esegui il commit di .enzonic/ci.yml e fai push. I job girano nell’ordine stabilito da needs, le celle della matrix in parallelo, ognuna con i propri servizi, cache e artifact.
- il lint gira per primo; entrambe le celle di test partono quando passa
- ogni cella di test ha il proprio Postgres su localhost e come postgres:5432
- i download npm arrivano dalla cache con chiave package-lock.json
- la copertura viene conservata anche quando i test falliscono
- il deploy gira solo su main, con un segreto che i log non mostrano mai
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 }}Già su GitHub Actions?
Collega il repository e i tuoi .github/workflows girano qui senza modifiche, purché usino quanto elencato sotto. Tutto il resto viene rifiutato con un messaggio chiaro, mai saltato in silenzio.
Funziona così com’è
actions/checkoutViene sempre fatto il checkout del commit dell’esecuzioneactions/setup-node, setup-python, setup-go, setup-javaScegli l’immagine del job; cache: aggiunge la cache del gestore di pacchettioven-sh/setup-bun, pnpm/action-setupImmagine Bun, pnpm installatoactions/cache (and /restore, /save)Una cache del job, ripristinata per prima e salvata alla fineactions/upload-artifact, download-artifactArtifact conservati con l’esecuzione e passati tra i jobstrategy.matrix, needs, if, services, containerInclude include / exclude e fail-fast
Non supportato
- Altri usi: action, action Docker, action composite e workflow riutilizzabili
- Output di passaggi e job (steps.*.outputs, needs.*.outputs)
- Runner Windows e macOS
- pull_request_target
Prezzi
La CI è inclusa nel tuo piano Enzonic Cloud, lo stesso che copre Deploy e Databases. Inizia con il piano Free; passa a un piano superiore quando ti servono più minuti o runner più grandi. Solo runner Linux.
| Ogni piano Cloud include la CI | Free 0 USD | Starter 5 USD / mese 4,17 USD al mese, fatturato annualmente | Consigliato Pro 10 USD / mese 8,33 USD al mese, fatturato annualmente | Growth 19 USD / mese 15,83 USD al mese, fatturato annualmente | Business 29 USD / mese 24,17 USD al mese, fatturato annualmente |
|---|---|---|---|---|---|
| Minuti CI al mese | 3000 | 5000 | 6000 | 15.000 | 60.000 |
| Job contemporanei | 2 | 4 | 6 | 10 | 20 |
| Job più lungo | 360 min | 360 min | 360 min | 480 min | 720 min |
| Cache delle dipendenze | 2 GB | 5 GB | 10 GB | 20 GB | 50 GB |
| Artifact conservati | 90 giorni | 90 giorni | 90 giorni | 180 giorni | 400 giorni |
| Log conservati | 14 giorni | 30 giorni | 30 giorni | 60 giorni | 90 giorni |
Grant per chi costruisce
Sviluppi open source, studi, insegni o gestisci un'organizzazione no profit? Richiedi tempo gratuito Pro o Business e credito Cloud per Deploy e Database.
- Piano Pro o Business per un massimo di un anno, per Deploy e Database insieme
- Credito Cloud aggiunto al tuo saldo
- Per il tuo account personale o per tutto il team
- Letta da una persona, di solito con risposta entro pochi giorni
- Open source
- Studenti
- No profit
- Startup
- Docenti
- Hackathon
Domande
Cosa conta come minuto CI?
Dove girano i job?
Perché i job partono così in fretta?
Quali sistemi operativi possono usare i job?
Posso tenere i miei workflow di GitHub Actions?
Cosa succede con i segreti e le pull request da fork?
Come arrivano i risultati su GitHub?
Cosa succede se un’esecuzione fallisce?
Devo ospitare la mia app su Enzonic?
Quali immagini può usare un job?
Il tuo prossimo push può girare qui.
Pubblica anche il risultato: Enzonic Deploy ospita gratis le web app.