CI для ваших репозиториев GitHub
на серверах, которыми мы управляем сами.
Каждый пуш и пулл-реквест запускает ваши тесты в песочнице на оборудовании Enzonic, которая уже работает к моменту прихода задания, с логами в реальном времени и проверкой на GitHub. Напишите короткий .enzonic/ci.yml или оставьте уже имеющиеся рабочие процессы GitHub Actions.
3 000 мин в месяц бесплатно. Карта не нужна.
- Минут CI в месяц
- задания одновременно
- на задание
- кэша зависимостей
Всё, что нужно пайплайну, и ничего не нужно контролировать
Раннеры, сервисы, кэши и логи входят в продукт. Вы пишете только шаги.
Песочницы, которые уже работают
Каждое задание получает собственную песочницу на оборудовании Enzonic, запущенную заранее и готовую к работе в момент прихода задания.
Задания матрицы и needs
Тесты на Node 20 и 22 одновременно, затем деплой только когда прошли все ячейки. Задания ждут нужных им заданий.
Сервисы Postgres и Valkey
Запустите настоящую базу данных рядом с тестами одной строкой; её работоспособность проверяется до первого шага.
Кэши
Сохраняйте node_modules, колёса pip или результаты сборки между запусками, используя ключ, построенный по вашему lock-файлу.
Артефакты
Храните отчёты о покрытии, сборки и скриншоты, передавайте их следующим заданиям и скачивайте в течение нескольких дней.
Логи в реальном времени
Следите за каждым шагом в реальном времени: с цветовой подсветкой, сгруппированные по шагам, а упавшие шаги открыты для вас.
Проверки на GitHub
Каждое задание отправляет проверку с аннотациями в пулл-реквест, готовую для защиты ветки.
Ваши рабочие процессы без изменений
Большая часть GitHub Actions работает без изменений: матрицы, сервисы, контейнеры и распространённые setup-действия.
Расписания
Ночные тесты или еженедельные проверки зависимостей со строкой cron, в UTC.
Enzica исправляет упавшие запуски
Один клик по упавшему заданию: Enzica находит причину, отправляет ветку с исправлением и запускает на ней пайплайн.
Ожидания больше нет, так что запуск это ваши шаги
Большая часть времени CI уходит на запуск машины, клонирование и загрузку зависимостей. Enzonic CI выполняет эту работу до прихода вашего задания.
- 01
Песочницы размораживаются, а не загружаются заново
Пул песочниц запускается заранее. Когда приходит задание, ему выдаётся готовая песочница, поэтому машину не нужно поднимать.
- 02
Checkout из локального зеркала
Каждый раннер хранит зеркало вашего репозитория и загружает только изменения, а не клонирует его с GitHub для каждого задания.
- 03
Кэши подключаются с локального диска
Кэши зависимостей остаются на раннере и подключаются к заданию, а не скачиваются и не распаковываются заново.
Каждое задание показывает, куда ушло время: очередь, песочница, checkout, зависимости, сервисы, кэш и шаги.
Один файл в вашем репозитории
Закоммитьте .enzonic/ci.yml и отправьте пуш. Задания выполняются в порядке, заданном needs; ячейки матрицы выполняются параллельно, и у каждой свои сервисы, кэш и артефакты.
- линтер запускается первым; обе ячейки тестов стартуют после его успешного прохождения
- каждая ячейка тестов получает собственный Postgres на localhost и как postgres:5432
- загрузки npm берутся из кэша, ключ которого строится по package-lock.json
- отчёт о покрытии сохраняется, даже если тесты упали
- деплой запускается только из main, с секретом, который никогда не показывается в логах
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 }}Уже используете GitHub Actions?
Подключите репозиторий, и ваши .github/workflows будут работать здесь без правок, если используют перечисленное ниже. Всё остальное отклоняется с понятным сообщением, а не пропускается молча.
Работает как есть
actions/checkoutКоммит запуска всегда извлекается (checkout)actions/setup-node, setup-python, setup-go, setup-javaВыберите образ задания; cache: добавляет кэш менеджера пакетовoven-sh/setup-bun, pnpm/action-setupОбраз Bun, установлен pnpmactions/cache (and /restore, /save)Кэш задания: восстанавливается в начале и сохраняется в концеactions/upload-artifact, download-artifactАртефакты сохраняются с запуском и передаются между заданиямиstrategy.matrix, needs, if, services, containerВключая include / exclude и fail-fast
Не поддерживается
- Другие варианты: actions, Docker actions, составные actions и переиспользуемые рабочие процессы
- Выходные данные шагов и заданий (steps.*.outputs, needs.*.outputs)
- Раннеры Windows и macOS
- pull_request_target
Цены
CI входит в ваш тариф Enzonic Cloud, тот же, что включает Deploy и Databases. Начните с бесплатного тарифа и переходите на платный, когда понадобятся больше минут или более мощные раннеры. Только Linux-раннеры.
| CI входит в каждый тариф Cloud | Free 0 $ | Starter 5 $ / мес. 4,17 $ в месяц при оплате за год | Рекомендуем Pro 10 $ / мес. 8,33 $ в месяц при оплате за год | Growth 19 $ / мес. 15,83 $ в месяц при оплате за год | Business 29 $ / мес. 24,17 $ в месяц при оплате за год |
|---|---|---|---|---|---|
| Минут CI в месяц | 3 000 | 5 000 | 6 000 | 15 000 | 60 000 |
| Заданий одновременно | 2 | 4 | 6 | 10 | 20 |
| Самое долгое задание | 360 мин | 360 мин | 360 мин | 480 мин | 720 мин |
| Кеш зависимостей | 2 ГБ | 5 ГБ | 10 ГБ | 20 ГБ | 50 ГБ |
| Сохранённые артефакты | 90 дней | 90 дней | 90 дней | 180 дней | 400 дней |
| Сохранённые логи | 14 дней | 30 дней | 30 дней | 60 дней | 90 дней |
Гранты для создателей
Делаете open source, учитесь, преподаёте или руководите некоммерческой организацией? Подайте заявку на бесплатное время Pro или Business и кредит Cloud для Deploy и Баз данных.
- Тариф Pro или Business на срок до года, сразу для Deploy и Баз данных
- Кредит Cloud зачисляется на ваш баланс
- Для личного аккаунта или всей команды
- Читает человек, ответ обычно в течение нескольких дней
- Open source
- Студенты
- Некоммерческие организации
- Стартапы
- Преподаватели
- Хакатоны
Вопросы
Что считается минутой CI?
Где выполняются задания?
Почему задания запускаются так быстро?
Какие операционные системы могут использовать задания?
Можно ли оставить мои рабочие процессы GitHub Actions?
Что происходит с секретами и пулл-реквестами из форков?
Как результаты попадают на GitHub?
Что, если запуск завершился ошибкой?
Нужно ли размещать приложение на Enzonic?
Какие образы может использовать задание?
Ваш следующий пуш может запуститься здесь.
Результат тоже можно доставить: Enzonic Deploy размещает веб-приложения бесплатно.