Runnery hostowane przez GitHub są wygodne, dopóki rachunek albo czas oczekiwania nie zaczną boleć. Powyżej darmowego limitu płacisz za minutę, każde zadanie startuje „na zimno” i za każdym razem pobiera zależności od nowa. Samodzielnie hostowany runner na twoim własnym VPS odwraca wszystkie trzy punkty: stały koszt miesięczny, „ciepła” maszyna z twoimi cache'ami już na dysku i środowisko budowania, które w pełni kontrolujesz — konkretne wersje narzędzi, więcej RAM, cache warstw Dockera, który naprawdę się utrzymuje.
Runner potrzebuje tylko połączenia wychodzącego do GitHuba, więc działa na naszych najtańszych planach, płaci się kryptowalutą i nie wymaga KYC.
Czego potrzebuje runner
- CPU i RAM na twoje buildy. Small ($8/mies — 4 vCPU, 4 GB RAM, 35 GB NVMe) to wygodny domyślny wybór dla większości CI: buildy Node/Go/Rust, zestawy testów, buildy obrazów Dockera. Ciężka kompilacja lub równoległe zadania? Przejdź na Medium lub plan Pro.
- Dysk NVMe na cache. Cały sens samodzielnego hostowania to trwałość — cache zależności, warstwy Dockera i artefakty buildów zostają na dysku między uruchomieniami. NVMe utrzymuje szybkie przywracanie.
- Dedykowany IP niepotrzebny. Runner dzwoni do GitHuba przez HTTPS; dostęp przychodzący nie jest potrzebny. Wystarczy plan NAT (od $3/mies). Weź dedykowany IP tylko, jeśli hostujesz też coś, co serwuje ruch.
Konfiguracja runnera (Ubuntu 24.04)
Utwórz runner w repozytorium (lub organizacji): Settings → Actions → Runners → New self-hosted runner → Linux. GitHub pokazuje polecenie pobrania i jednorazowy token rejestracji. Na VPS:
# jako użytkownik nie-root (runner odmawia działania jako root)
adduser --disabled-password --gecos "" runner
su - runner
mkdir actions-runner && cd actions-runner
curl -o actions-runner-linux-x64.tar.gz -L \
https://github.com/actions/runner/releases/latest/download/actions-runner-linux-x64.tar.gz
tar xzf actions-runner-linux-x64.tar.gz
# zarejestruj z URL + tokenem z interfejsu GitHuba
./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN
Utrzymanie jako usługa
Nie uruchamiaj ./run.sh w terminalu — zainstaluj runner jako usługę systemd, by przetrwał restarty:
sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status
Runner pojawia się teraz jako Idle w interfejsie GitHuba i podejmuje każde zadanie skierowane do niego.
Użycie z workflow
Skieruj zadanie do swojego runnera przez runs-on:
jobs:
build:
runs-on: self-hosted # lub własna etykieta ustawiona przy rejestracji
steps:
- uses: actions/checkout@v4
- run: make build && make test
Zadania oparte na Dockerze
Zainstaluj Dockera raz, a twoje workflow będą mogły budować obrazy lub uruchamiać kontenery usług, z cache'em warstw utrzymywanym między uruchomieniami:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # pozwól runnerowi używać Dockera bez sudo
Dla jednorazowej izolacji na zadanie uruchom sam runner w kontenerze i twórz go od nowa przy każdym uruchomieniu — częsty wzorzec dla niezaufanych lub macierzowych buildów.
Dlaczego EQVPS do CI
- Stały koszt, nieograniczone minuty. Bez pomiaru za minutę — zajęty pipeline kosztuje tyle samo, co bezczynny.
- „Ciepłe” cache. Zależności i warstwy Dockera zostają na NVMe między uruchomieniami; buildy przyspieszają, a nie zwalniają.
- Root w ~60 sekund, czyste obrazy. Ubuntu, Debian i więcej przez cloud-init; zainstaluj dokładnie ten toolchain, którego potrzebujesz.
- Bez KYC, płatność kryptowalutą. E-mail do rejestracji, USDC/USDT do zapłaty. Uruchamiaj dodatkowe runnery na szczyty wydań i anuluj je później — niewykorzystany opłacony czas wraca na twoje saldo.
Komentarze
Brak komentarzy. Bądź pierwszy.