GitHub-ჰოსტინგ runner-ები მოსახერხებელია, სანამ ანგარიში ან ლოდინის დრო არ დაიწყებს ტკენას. უფასო tier-ის მიღმა იხდით წუთში, cold-start-ს აკეთებთ ყოველ job-ზე და ხელახლა გადმოწერთ dependency-ებს ყოველ გაშვებაზე. თვით-ჰოსტინგ runner თქვენს საკუთარ VPS-ზე სამივეს აბრუნებს: ფიქსირებული თვიური ღირებულება, თბილი მანქანა თქვენი cache-ებით უკვე დისკზე, და build გარემო, რომელსაც სრულად აკონტროლებთ — კონკრეტული ხელსაწყოს ვერსიები, მეტი RAM, Docker layer cache, რომელიც რეალურად რჩება.
runner-ს მხოლოდ GitHub-თან გამავალი მიწვდომა სჭირდება, ასე რომ ის მუშაობს ჩვენს ყველაზე იაფ ტარიფებზე, იხდის კრიპტოთი და KYC არ სჭირდება.
რა სჭირდება runner-ს
- CPU და RAM თქვენი build-ებისთვის. Small ($8/თვე — 4 vCPU, 4 GB RAM, 35 GB NVMe) კომფორტული ნაგულისხმევია უმეტესი CI-სთვის: Node/Go/Rust build-ები, ტესტების ნაკრებები, Docker image build-ები. მძიმე კომპილაცია ან პარალელური job-ები? გადადით Medium-ზე ან Pro ტარიფზე.
- NVMe დისკი cache-ებისთვის. თვით-ჰოსტინგის მთელი აზრი მუდმივობაა — dependency cache-ები, Docker layer-ები, build artifact-ები რჩება დისკზე გაშვებებს შორის. NVMe აღდგენებს სწრაფად ინახავს.
- გამოყოფილი IP საჭირო არ არის. runner უკავშირდება GitHub-ს HTTPS-ით გარეთ; არაფერს სჭირდება მისი მიწვდომა შიგნით. NAT ტარიფი ($3/თვე-დან) საკმარისია. აიღეთ გამოყოფილი IP მხოლოდ თუ ასევე ჰოსტინგს უწევთ რაღაცას, რაც ტრაფიკს ემსახურება.
დააყენეთ runner (Ubuntu 24.04)
შექმენით runner თქვენს repo-ში (ან org-ში): Settings → Actions → Runners → New self-hosted runner → Linux. GitHub აჩვენებს გადმოწერის ბრძანებასა და ერთჯერად რეგისტრაციის token-ს. VPS-ზე:
# as a non-root user (the runner refuses to run as 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
# register with the URL + token from the GitHub UI
./config.sh --url https://github.com/YOUR_ORG/YOUR_REPO --token YOUR_TOKEN
შეინარჩუნეთ ის გაშვებული როგორც სერვისი
ნუ გაუშვებთ ./run.sh-ს ტერმინალში — დააინსტალეთ ის systemd სერვისად, რომ გადატვირთვებს გადარჩეს:
sudo ./svc.sh install runner
sudo ./svc.sh start
sudo ./svc.sh status
runner ახლა ჩნდება როგორც Idle GitHub UI-ში და იღებს ნებისმიერ job-ს, რომელიც მას მიმართავს.
გამოიყენეთ ის workflow-დან
მიმართეთ job თქვენს runner-ზე runs-on-ით:
jobs:
build:
runs-on: self-hosted # or a custom label you set at registration
steps:
- uses: actions/checkout@v4
- run: make build && make test
Docker-ზე დაფუძნებული job-ები
დააინსტალეთ Docker ერთხელ და თქვენს workflow-ებს შეუძლიათ image-ების აგება ან service კონტეინერების გაშვება, layer cache-ის შენარჩუნებით გაშვებებს შორის:
sudo apt update && sudo apt install -y docker.io
sudo usermod -aG docker runner # let the runner use Docker without sudo
ერთჯერადი per-job იზოლაციისთვის, გაუშვით თავად runner კონტეინერში და ხელახლა შექმენით ის ყოველ გაშვებაზე — გავრცელებული შაბლონი არასანდო ან matrix build-ებისთვის.
რატომ EQVPS CI-სთვის
- ფიქსირებული ღირებულება, შეუზღუდავი წუთები. არავითარი per-minute გაზომვა — დატვირთული pipeline იმდენივე ღირს, რამდენიც უმოქმედო.
- თბილი cache-ები. Dependency-ები და Docker layer-ები რჩება NVMe-ზე გაშვებებს შორის; build-ები უფრო სწრაფი ხდება, არა ნელი.
- Root ~60 წამში, სუფთა image-ები. Ubuntu, Debian და მეტი cloud-init-ით; დააინსტალეთ ზუსტად ის toolchain, რომელიც გჭირდებათ.
- No KYC, კრიპტო გადახდა. ელფოსტა რეგისტრაციისთვის, USDC/USDT გადასახდელად. გაუშვით დამატებითი runner-ები release-ის მოჭერისთვის და გააუქმეთ ისინი შემდეგ — გამოუყენებელი გადახდილი დრო ბრუნდება თქვენს ბალანსზე.
კომენტარები
ჯერ არ არის კომენტარები. იყავით პირველი.