CI dla Twoich repozytoriów GitHub
na serwerach, którymi zarządzamy sami.
Każdy push i pull request uruchamia Twoje testy w sandboxie na sprzęcie Enzonic, który już działa, gdy zadanie przychodzi, z logami na żywo i checkiem na GitHubie. Napisz krótki .enzonic/ci.yml albo zachowaj workflowy GitHub Actions, które już masz.
3000 min miesięcznie za darmo. Bez karty.
- Minuty CI miesięcznie
- zadania naraz
- na zadanie
- pamięci podręcznej zależności
Wszystko, czego potrzebuje pipeline, bez pilnowania
Runnery, usługi, pamięć podręczna i logi są częścią produktu. Ty piszesz kroki.
Sandboxy, które już działają
Każde zadanie dostaje własny sandbox na sprzęcie, którym zarządza Enzonic, uruchomiony z wyprzedzeniem i odmrożony, gdy zadanie przychodzi.
Zadania matrix i needs
Testuj na Node 20 i 22 jednocześnie, a deploy uruchamiaj dopiero, gdy każda komórka przejdzie. Zadania czekają na zadania, których potrzebują.
Usługi Postgres i Valkey
Uruchom prawdziwą bazę danych obok testów jedną linijką, z kontrolą stanu przed pierwszym krokiem.
Pamięć podręczna
Zachowuj node_modules, paczki wheel z pip albo wyniki buildu między uruchomieniami, używając klucza zbudowanego z lockfile.
Artefakty
Zachowuj raporty pokrycia, buildy i zrzuty ekranu, przekazuj je dalszym zadaniom i pobieraj przez kilka dni.
Logi na żywo
Obserwuj każdy krok na żywo, w kolorach, pogrupowany według kroków, z rozwiniętymi krokami z błędami.
Checki na GitHubie
Każde zadanie zgłasza check z adnotacjami w pull requeście, gotowy do ochrony gałęzi.
Twoje workflowy bez zmian
Duża część GitHub Actions działa bez zmian: matrix, usługi, kontenery i popularne akcje konfiguracji.
Harmonogramy
Nocne testy albo cotygodniowe sprawdzanie zależności z linią cron, w UTC.
Enzica naprawia nieudane uruchomienia
Jedno kliknięcie na nieudane zadanie: Enzica znajduje przyczynę, wypycha gałąź z poprawką i uruchamia na niej pipeline.
Oczekiwanie zniknęło, więc uruchomienie to Twoje kroki
Większość czasu CI idzie na uruchamianie maszyny, klonowanie i pobieranie zależności. Enzonic CI wykonuje tę pracę, zanim przyjdzie Twoje zadanie.
- 01
Sandboxy są odmrażane, nie uruchamiane
Pula sandboxów jest uruchamiana z wyprzedzeniem. Gdy przychodzi zadanie, jeden z nich zostaje odmrożony i przydzielony, więc nie trzeba uruchamiać maszyny.
- 02
Checkouty z lokalnego mirrora
Każdy runner trzyma mirror Twojego repozytorium i pobiera tylko to, co się zmieniło, zamiast klonować z GitHuba przy każdym zadaniu.
- 03
Pamięci podręczne podłączone z dysku lokalnego
Pamięci podręczne zależności zostają na runnerze i są podłączane do zadania, zamiast najpierw być pobierane i rozpakowywane.
Każde zadanie pokazuje, gdzie poszedł jego czas: kolejka, sandbox, checkout, zależności, usługi, pamięć podręczna i kroki.
Jeden plik w Twoim repozytorium
Zrób commit pliku .enzonic/ci.yml i wypchnij zmiany. Zadania działają w kolejności wyznaczonej przez needs, komórki matrix równolegle, każda z własnymi usługami, pamięcią podręczną i artefaktami.
- lint uruchamia się pierwszy; obie komórki testowe startują, gdy przejdzie
- każda komórka testowa ma własny Postgres na localhost i jako postgres:5432
- pobieranie npm pochodzi z pamięci podręcznej z kluczem package-lock.json
- pokrycie jest zachowywane, nawet gdy testy się nie powiodą
- deploy działa tylko na main, z sekretem, którego logi nigdy nie pokazują
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 }}Już korzystasz z GitHub Actions?
Połącz repozytorium, a Twoje .github/workflows będą tu działać bez zmian, o ile korzystają z tego, co wymieniono poniżej. Wszystko inne zostanie odrzucone z jasnym komunikatem, nigdy po cichu pominięte.
Działa tak, jak jest
actions/checkoutCommit uruchomienia jest zawsze pobierany (checkout)actions/setup-node, setup-python, setup-go, setup-javaWybierz obraz zadania; cache: dodaje pamięć podręczną menedżera pakietówoven-sh/setup-bun, pnpm/action-setupObraz Bun, zainstalowany pnpmactions/cache (and /restore, /save)Pamięć podręczna zadania, przywracana na początku i zapisywana na końcuactions/upload-artifact, download-artifactArtefakty przechowywane z uruchomieniem i przekazywane między zadaniamistrategy.matrix, needs, if, services, containerŁącznie z include / exclude i fail-fast
Nieobsługiwane
- Inne zastosowania: akcje, akcje Docker, akcje złożone i workflowy wielokrotnego użytku
- Wyjścia kroków i zadań (steps.*.outputs, needs.*.outputs)
- Runnery Windows i macOS
- pull_request_target
Cennik
CI jest w Twoim planie Enzonic Cloud, tym samym, który obejmuje Deploy i Databases. Zacznij od planu Free; przejdź wyżej, gdy potrzebujesz więcej minut albo większych runnerów. Tylko runnery Linux.
| Każdy plan Cloud zawiera CI | Free 0 USD | Starter 5 USD / mies. 4,17 USD miesięcznie, rozliczane rocznie | Polecany Pro 10 USD / mies. 8,33 USD miesięcznie, rozliczane rocznie | Growth 19 USD / mies. 15,83 USD miesięcznie, rozliczane rocznie | Business 29 USD / mies. 24,17 USD miesięcznie, rozliczane rocznie |
|---|---|---|---|---|---|
| Minuty CI miesięcznie | 3000 | 5000 | 6000 | 15 000 | 60 000 |
| Zadania naraz | 2 | 4 | 6 | 10 | 20 |
| Najdłuższe zadanie | 360 min | 360 min | 360 min | 480 min | 720 min |
| Pamięć podręczna zależności | 2 GB | 5 GB | 10 GB | 20 GB | 50 GB |
| Przechowywane artefakty | 90 dni | 90 dni | 90 dni | 180 dni | 400 dni |
| Przechowywane logi | 14 dni | 30 dni | 30 dni | 60 dni | 90 dni |
Dotacje dla twórców
Tworzysz open source, studiujesz, uczysz albo prowadzisz organizację non-profit? Złóż wniosek o darmowy czas Pro lub Business i środki Cloud na Deploy i Bazy danych.
- Plan Pro lub Business na maksymalnie rok, dla Deploy i Baz danych razem
- Środki Cloud dodane do Twojego salda
- Dla Twojego konta osobistego lub całego zespołu
- Czyta człowiek, zwykle odpowiedź w ciągu kilku dni
- Open source
- Studenci
- Organizacje non-profit
- Startupy
- Nauczyciele
- Hackathony
Pytania
Co liczy się jako minuta CI?
Gdzie działają zadania?
Dlaczego zadania startują tak szybko?
Jakich systemów operacyjnych mogą używać zadania?
Czy mogę zachować moje workflowy GitHub Actions?
Co się dzieje z sekretami i pull requestami z forków?
Jak wyniki trafiają na GitHub?
Co się stanie, gdy uruchomienie się nie powiedzie?
Czy muszę hostować moją aplikację na Enzonic?
Jakich obrazów może używać zadanie?
Twój następny push może tu zadziałać.
Wyślij też wynik: Enzonic Deploy hostuje aplikacje webowe za darmo.