# Dlaczego GitHub Actions jest wolny i jak nie zaczynać od zera

> GitHub Actions jest wolny, bo każde zadanie startuje na pustej VM i przed pierwszym testem pobiera narzędzia, instaluje od nowa zależności i buduje od nowa obrazy Dockera. Skipbox trzyma to wszystko na Twojej własnej maszynie między zadaniami, za stałe $39 miesięcznie, minuty bez limitu: przy 20 000 minut na 4 vCPU to $183 miesięcznie mniej niż w GitHubie.

Większość wolnego zadania GitHub Actions dzieje się, zanim ruszy pierwszy test. Konfiguracja Node, pobranie zależności, build obrazu Dockera: te same minuty przy każdym pushu, a ktoś z zespołu czeka na zielony check. Przy rozliczeniu za minutę płacisz też za te minuty.

Skipbox to runner GitHub Actions, który zachowuje swoją maszynę między zadaniami, więc to, co zainstalowało jedno zadanie, wciąż jest na dysku dla następnego. Zmieniasz jedną linię, `runs-on: skipbox`, a zadanie działa na Twojej własnej maszynie za stałe $39 miesięcznie, z minutami bez limitu.

- Zależności, warstwy Dockera i narzędzia zostają na dysku, więc zadania pomijają pobieranie i przebudowy
- Co najmniej 7× więcej miejsca na cache niż w GitHubie, bez wygasania po 7 dniach i bez dostrajania kluczy cache
- 20 000 minut miesięcznie na 4 vCPU: $222 w GitHubie, $39 w Skipbox

**GitHub Actions w stałej cenie, minuty bez limitu** Skipbox uruchamia Twoje zadania GitHub Actions na Twojej własnej, dedykowanej maszynie: $39 miesięcznie, niezależnie od liczby minut. Warstwy Dockera i cache zależności zostają między zadaniami, więc kolejne zadanie startuje od razu.

Runner 4 vCPU, 20 000 minut miesięcznie: GitHub $222 → Skipbox $39. Oszczędzasz $183 co miesiąc.

Przejście to jedna linia: `runs-on: skipbox`.

[Rozpocznij 7-dniowy okres próbny](https://app.skipbox.dev/sign-in?ref=g-github-actions-slow-pl)

## Każde zadanie startuje z pustej VM

Runner hostowany przez GitHub to nowa maszyna wirtualna dla każdego zadania. Nie ma na niej nic, co poprzednie zadanie pobrało albo zbudowało, więc każde zadanie odtwarza ten sam stan:

| Krok | Runner hostowany przez GitHub | Skipbox |
|---|---|---|
| Konfiguracja Node, Pythona, Javy | Pobiera toolchain | Znajduje go w tool cache z poprzedniego zadania |
| Instalacja zależności | Pobiera i rozpakowuje archiwum cache; przy chybieniu pobiera wszystko z rejestru | Czyta cache menedżera pakietów z dysku |
| Build obrazu Dockera | Startuje bez warstw i buduje od nowa każdy krok | Ponownie używa warstw z poprzedniego buildu |
| Uruchomienie testów | 2 CPU na `ubuntu-latest` w repozytorium prywatnym | 4 vCPU i więcej |

Pierwsze trzy wiersze nie wytwarzają niczego nowego. Przywracają maszynę do stanu z wczoraj.

Cache GitHuba łagodzi to, ale niczego nie zmienia. Mieści 10 GB na repozytorium, usuwa wpisy, których żadne zadanie nie czytało przez 7 dni, a nowa gałąź funkcji nie może odczytać cache innej gałęzi funkcji. Nawet trafienie w cache to pobranie i rozpakowanie archiwum przy każdym uruchomieniu.

## Ile kosztuje Cię czekanie

Załóżmy, że przygotowanie zajmuje 3 minuty każdego zadania, a Twój zespół uruchamia 100 zadań dziennie. To 300 minut pracy runnera dziennie na przywracanie maszyny, a każdy pull request czeka na swoją część. Review zaczynają się później, scalenia trafiają później, a inżynierowie w czasie czekania przełączają się na coś innego.

Przy rozliczeniu za minutę te minuty są na fakturze. Runner 4 vCPU według minut miesięcznie:

| Minuty miesięcznie (4 vCPU) | GitHub | Skipbox S | Oszczędzasz co miesiąc |
|---|---|---|---|
| 10 000 | $102 | $39 | **$63** |
| 20 000 | $222 | $39 | **$183** |
| 30 000 | $342 | $39 | **$303** |

Kwoty GitHuba to rachunek po odjęciu użycia wliczonego w GitHub Team. Wpisz własne minuty do [kalkulatora na stronie głównej](https://skipbox.dev/?ref=g-github-actions-slow-pl#cost); bez logowania.

A uruchomień jest tylko coraz więcej:

- **Agenci AI do kodowania.** Każdy push agenta uruchamia CI. Czekanie i rachunek rosną z liczbą pushy, nie ludzi.
- **Więcej testów.** Zestaw E2E albo macierz powtarza przygotowanie w każdym zadaniu, które dodaje.
- **Budżety.** Ogranicz rachunek budżetem w GitHubie, a zadania przestaną startować w połowie miesiąca, co zatrzyma scalanie.

## Samodzielne przyspieszanie to cały projekt

Zostać przy runnerach hostowanych przez GitHub i zrobić je szybkimi to wziąć na siebie taką pracę:

- Klucze cache oparte na hashach plików lock i dostrajanie `restore-keys`, aż zaczną trafiać
- Dodanie buildx i eksportowanie cache Dockera przez `cache-to`, w tych samych 10 GB
- Dzielenie testów na shardy, w których każdy shard powtarza przygotowanie, a naliczane minuty rosną
- Albo własny runner self-hosted: przygotowanie maszyn, aktualizacje systemu, sprzątanie między zadaniami i naprawianie, gdy padnie

Każda z tych rzeczy obchodzi maszynę, która wszystko zapomina. Skipbox zachowuje maszynę, więc żadna z nich nie jest potrzebna.

## Co się zmienia w Skipbox

**Przygotowanie zostaje na dysku.** Twoje zadania działają na własnej maszynie Twojego konta, która zostaje między zadaniami. Obrazy Dockera, warstwy i cache buildów; cache pakietów npm, pip, Gradle i innych; narzędzia instalowane przez `setup-node` i podobne akcje. Co najmniej 7× więcej miejsca na cache niż w GitHubie, bez wygasania po 7 dniach i bez reguły gałęzi.

**Większe maszyny w stałej cenie.** Kompilatory i narzędzia do testów uruchamiają jeden proces roboczy na rdzeń, więc więcej rdzeni skraca kroki ograniczone przez CPU.

| Plan | Maszyna | Cena |
|---|---|---|
| S | 4 vCPU · 16 GB | $39 miesięcznie |
| M | 8 vCPU · 16 GB | $79 miesięcznie |
| L | 16 vCPU · 32 GB | $149 miesięcznie |

Minuty są bez limitu w każdym planie. Zadania w Skipbox nie zużywają minut GitHuba, więc budżet w GitHubie nigdy ich nie zatrzymuje.

**Bez maszyny do pilnowania.** Skipbox przygotowuje maszynę, aktualizuje system i narzędzia, sprząta po każdym zadaniu, przeprowadza kontrolę stanu i buduje od nowa maszynę, która jej nie przejdzie.

## Przejście to jedna linia

```yaml
jobs:
  build:
    runs-on: skipbox # was ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: npm ci && npm test
```

1. Zaloguj się do Skipbox przez GitHuba.
2. Zainstaluj aplikację Skipbox w GitHubie i wybierz repozytoria.
3. Zmień `runs-on` i zrób push.

To, co zainstaluje pierwsze zadanie, jest na dysku dla drugiego.

## Bezpieczeństwo

- Maszyna należy tylko do Twojego konta. Nie działają na niej zadania żadnej innej firmy.
- Po każdym zadaniu usuwane są dane uwierzytelniające runnera, procesy i kontenery. Od 13 listopada 2026 Twój checkout i wynik jego buildu (katalog `target/` Cargo) zostają na Twojej własnej maszynie dla kolejnych zadań; opcja **Nowa VM dla każdego zadania** daje każdemu zadaniu nową maszynę.
- Kod od osób bez uprawnień do zapisu (na przykład pull requesty z forków) działa na nowej, jednorazowej maszynie.

Szczegóły są w artykule [jak zadania są od siebie odizolowane](https://docs.skipbox.dev/isolation).

## Wypróbuj na swoim najwolniejszym zadaniu

Okres próbny jest bezpłatny przez 7 dni lub 3000 minut zadań, zależnie od tego, co nastąpi wcześniej, i nie wymaga karty. Przenieś swoje najwolniejsze zadanie na `runs-on: skipbox`, uruchom je dwa razy z rzędu i porównaj czasy kroków z GitHubem.

## FAQ

### Dlaczego GitHub Actions jest taki wolny?

Każde zadanie na runnerze hostowanym przez GitHub startuje na nowej VM, na której nie ma nic z poprzedniego uruchomienia, więc zanim ruszą Twoje testy, pobiera narzędzia, instaluje od nowa zależności i buduje od nowa obrazy Dockera. Skipbox uruchamia Twoje zadania na własnej maszynie Twojego konta i trzyma ten stan na jej dysku, więc kolejne zadanie zaczyna tam, gdzie skończyło poprzednie.

### Mam już actions/cache. Dlaczego workflow nadal jest wolny?

Nawet trafienie w cache oznacza pobranie i rozpakowanie archiwum w każdym zadaniu, bo VM za każdym razem jest nowa. Do tego cache GitHuba mieści 10 GB na repozytorium, usuwa wpisy nieużywane przez 7 dni i nie da się go odczytać z równoległej gałęzi. W Skipbox cache pakietów i warstwy Dockera są już na dysku maszyny, bez kluczy do zarządzania.

### Jak przyspieszyć buildy Dockera w GitHub Actions?

Daj buildowi warstwy z poprzedniego buildu. Na runnerach hostowanych przez GitHub oznacza to eksportowanie cache przez buildx i importowanie go przy każdym uruchomieniu, w ramach tego samego limitu 10 GB. W Skipbox obrazy Dockera i cache buildów zostają na maszynie między zadaniami, więc docker build sam ponownie używa warstw.

### Czy muszę przepisać workflowy, żeby używać Skipbox?

Nie. W zadaniach Linux zmień runs-on na skipbox. Maszyna ma Ubuntu 24.04 z Dockerem, Node.js i Pythonem, a Twoje kroki i akcje działają bez zmian.

### Czy mogę za darmo wypróbować to na moim wolnym zadaniu?

Tak. Okres próbny trwa 7 dni lub 3000 minut zadań, zależnie od tego, co nastąpi wcześniej, i nie wymaga karty. Przenieś swoje najwolniejsze zadanie na runs-on: skipbox, uruchom je dwa razy z rzędu i porównaj czasy kroków z GitHubem.

Zaktualizowano 2026-11-11 · https://skipbox.dev/pl/guides/github-actions-slow
