GitHub Actions — Automatizácia workflows priamo v GitHube
GitHub Actions je natívny CI/CD systém integrovaný priamo v GitHube. Umožňuje automatizovať build, test, deploy a akýkoľvek iný workflow pomocou YAML konfigurácie.
Čo je GitHub Actions
GitHub Actions je event-driven automatizačná platforma. Workflows sa spúšťajú na základe udalostí v repozitári — push, pull request, issue, release, cron schedule alebo manuálny trigger. Všetko sa konfiguruje v súboroch .github/workflows/*.yml.
Kľúčové koncepty:
- Workflow — celý automatizovaný proces (YAML súbor)
- Job — skupina krokov bežiacich na jednom runneri
- Step — jednotlivý príkaz alebo action
- Action — znovupoužiteľná jednotka (z Marketplace alebo vlastná)
- Runner — stroj, na ktorom job beží
YAML Syntax a štruktúra
name: CI Pipeline
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v4
- run: ./deploy.sh
Workflow podporuje matrix stratégiu pre testovanie na viacerých verziách, concurrency pre deduplikáciu behov a environment pre deployment approvals.
Self-hosted Runners
GitHub ponúka hosted runnery (Ubuntu, Windows, macOS), ale pre špecifické potreby môžete nasadiť self-hosted runner:
- Beh na vlastnom hardware (GPU, ARM, on-premise)
- Prístup k interným sieťam
- Nižšie náklady pri vysokom objeme
- Konfigurácia cez
runs-on: self-hosteds custom labels
Self-hosted runnery vyžadujú správnu bezpečnostnú konfiguráciu — nikdy ich nepoužívajte na public repozitároch bez obmedzení.
Marketplace Actions
GitHub Marketplace obsahuje tisíce hotových actions:
| Action | Účel |
|---|---|
actions/checkout |
Checkout repozitára |
actions/cache |
Cachovanie dependencies |
docker/build-push-action |
Build a push Docker image |
softprops/action-gh-release |
Vytvorenie GitHub release |
slackapi/slack-github-action |
Notifikácie do Slacku |
Vlastné actions môžete vytvoriť ako JavaScript, TypeScript alebo Docker container action.
Best Practices
- Používajte pinning actions na konkrétny SHA hash (
uses: actions/checkout@abc123) - Cachujte dependencies pre rýchlejšie buildy
- Rozdeľte workflow na menšie, znovupoužiteľné reusable workflows
- Secrets ukladajte do GitHub Secrets, nikdy do kódu
- Nastavte
timeout-minutespre každý job - Využívajte
concurrencyna zrušenie starých behov pri novom push
GitHub Actions je dnes štandard pre open-source projekty a rýchlo sa stáva voľbou číslo jedna aj pre enterprise tímy vďaka hlbokej integrácii s GitHubom.