CI pour vos dépôts GitHub
sur des serveurs que nous exploitons nous-mêmes.
Chaque push et pull request lance vos tests dans une sandbox sur le matériel d’Enzonic, déjà en marche à l’arrivée du job, avec des logs en direct et un check sur GitHub. Écrivez un court .enzonic/ci.yml, ou gardez les workflows GitHub Actions que vous avez déjà.
3 000 minutes par mois gratuites. Sans carte bancaire.
- Minutes de CI par mois
- jobs à la fois
- par job
- de cache de dépendances
Tout ce dont un pipeline a besoin, rien à surveiller
Runners, services, caches et logs font partie du produit. Vous écrivez les étapes.
Des sandboxes déjà en marche
Chaque job reçoit sa propre sandbox sur du matériel exploité par Enzonic, démarrée à l’avance et dégelée à l’arrivée du job.
Jobs en matrice et needs
Tests sur Node 20 et 22 en même temps, puis déploiement seulement quand toutes les cellules ont réussi. Les jobs attendent les jobs dont ils ont besoin.
Services Postgres et Valkey
Lancez une vraie base de données à côté de vos tests en une seule ligne, vérifiée avant la première étape.
Caches
Gardez node_modules, les wheels pip ou les fichiers de build entre les exécutions, avec une clé construite à partir de votre lockfile.
Artefacts
Conservez les rapports de couverture, les builds et les captures d’écran, transmettez-les aux jobs suivants et téléchargez-les pendant plusieurs jours.
Logs en direct
Suivez chaque étape pendant son exécution, avec des couleurs, regroupée par étape, les étapes en échec étant ouvertes pour vous.
Checks sur GitHub
Chaque job publie un check avec des annotations sur la pull request, prêt pour la protection de branche.
Vos workflows, sans modification
Une grande partie des workflows GitHub Actions fonctionne telle quelle : matrice, services, conteneurs et actions de configuration courantes.
Planifications
Tests nocturnes ou vérifications hebdomadaires des dépendances avec une ligne cron, en UTC.
Enzica corrige les exécutions en échec
Un clic sur un job en échec : Enzica trouve la cause, pousse une branche de correction et lance le pipeline dessus.
Plus d’attente : l’exécution, ce sont vos étapes
La plus grande partie du temps de CI est consacrée au démarrage d’une machine, au clonage et au téléchargement des dépendances. Enzonic CI effectue ce travail avant l’arrivée de votre job.
- 01
Les sandboxes sont dégelées, pas démarrées
Un pool de sandboxes est démarré à l’avance. Quand un job arrive, l’une d’elles est dégelée et lui est attribuée : il n’y a donc aucune machine à démarrer.
- 02
Récupérations du code depuis un miroir local
Chaque runner garde un miroir de votre dépôt et ne récupère que ce qui a changé, au lieu de cloner depuis GitHub pour chaque job.
- 03
Caches liés depuis le disque local
Les caches de dépendances restent sur le runner et sont liés au job, au lieu d’être téléchargés et décompressés au préalable.
Chaque job montre où son temps est passé : file d’attente, sandbox, checkout, dépendances, services, cache et étapes.
Un seul fichier dans votre dépôt
Faites un commit de .enzonic/ci.yml et poussez-le. Les jobs s’exécutent dans l’ordre défini par leurs needs, les cellules de matrice en parallèle, chacune avec ses propres services, cache et artefacts.
- le lint s’exécute en premier ; les deux cellules de test démarrent dès qu’il réussit
- chaque cellule de test a son propre Postgres sur localhost et sur postgres:5432
- les téléchargements npm viennent du cache indexé sur package-lock.json
- la couverture est conservée même lorsque les tests échouent
- le déploiement ne s’exécute que sur main, avec un secret que les logs n’affichent jamais
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 }}Vous utilisez déjà GitHub Actions ?
Connectez le dépôt : vos workflows .github/workflows s’exécutent ici sans modification, tant qu’ils utilisent ce qui est listé ci-dessous. Tout le reste est refusé avec un message clair, jamais ignoré en silence.
Fonctionne telle quelle
actions/checkoutLe commit de l’exécution est toujours récupéréactions/setup-node, setup-python, setup-go, setup-javaChoisissez l’image du job ; cache : ajoute le cache du gestionnaire de paquetsoven-sh/setup-bun, pnpm/action-setupImage Bun, pnpm installéactions/cache (and /restore, /save)Un cache de job, restauré en premier et enregistré à la finactions/upload-artifact, download-artifactArtefacts conservés avec l’exécution et transmis entre les jobsstrategy.matrix, needs, if, services, containerY compris include / exclude et fail-fast
Non pris en charge
- Autres usages : actions, actions Docker, actions composites et workflows réutilisables
- Sorties des étapes et des jobs (steps.*.outputs, needs.*.outputs)
- Runners Windows et macOS
- pull_request_target
Tarifs
La CI est incluse dans votre offre Enzonic Cloud, la même qui couvre Deploy et Databases. Commencez avec l’offre gratuite ; passez à une offre supérieure si vous avez besoin de plus de minutes ou de runners plus puissants. Runners Linux uniquement.
| Chaque offre Cloud inclut la CI | Free 0 $US | Starter 5 $US / mois 4,17 $US par mois, facturé annuellement | Recommandé Pro 10 $US / mois 8,33 $US par mois, facturé annuellement | Growth 19 $US / mois 15,83 $US par mois, facturé annuellement | Business 29 $US / mois 24,17 $US par mois, facturé annuellement |
|---|---|---|---|---|---|
| Minutes de CI par mois | 3 000 | 5 000 | 6 000 | 15 000 | 60 000 |
| Jobs simultanés | 2 | 4 | 6 | 10 | 20 |
| Job le plus long | 360 min | 360 min | 360 min | 480 min | 720 min |
| Cache de dépendances | 2 Go | 5 Go | 10 Go | 20 Go | 50 Go |
| Artefacts conservés | 90 jours | 90 jours | 90 jours | 180 jours | 400 jours |
| Logs conservés | 14 jours | 30 jours | 30 jours | 60 jours | 90 jours |
Subventions pour les créateurs
Vous développez de l’open source, étudiez, enseignez ou dirigez une association ? Demandez du temps gratuit en Pro ou Business et du crédit Cloud pour Deploy et Databases.
- Plan Pro ou Business jusqu’à un an, pour Deploy et Databases ensemble
- Crédit Cloud ajouté à votre solde
- Pour votre compte personnel ou toute votre équipe
- Lue par une personne, réponse généralement en quelques jours
- Open source
- Étudiants
- Associations
- Startups
- Enseignants
- Hackathons
Questions
Que compte une minute de CI ?
Où tournent les jobs ?
Pourquoi les jobs démarrent-ils si vite ?
Quels systèmes d’exploitation les jobs peuvent-ils utiliser ?
Puis-je garder mes workflows GitHub Actions ?
Que se passe-t-il avec les secrets et les pull requests depuis des forks ?
Comment les résultats arrivent-ils sur GitHub ?
Que se passe-t-il si une exécution échoue ?
Dois-je héberger mon application sur Enzonic ?
Quelles images un job peut-il utiliser ?
Votre prochain push peut s’exécuter ici.
Publiez aussi le résultat : Enzonic Deploy héberge vos applications web gratuitement.