intermediate
GitHub Actions
Моделируйте workflows, jobs, actions, permissions, environments и required checks рядом с pull request на GitHub.
GitHub Actions запускает workflow по событиям репозитория. Jobs, steps, actions, runners, permissions, environments и required status checks делают его распространённой CI/CD-системой для кода на GitHub.
name: ci
on:
pull_request:
push:
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 && npm test
Ключевые концепции: триггеры workflow, reusable workflows, least privilege в `permissions`, ключи кэша, matrix jobs, protection rules окружений и required checks на protected branches.
На интервью: безопасность `pull_request` vs `pull_request_target`, pinning сторонних actions, OIDC deploy и merge gates.
Типовые ошибки: сторонние actions как supply-chain зависимости; широкие write-права `GITHUB_TOKEN`; небезопасный `pull_request_target` с секретами для fork.
Компромисс — тесная интеграция с GitHub против сложности YAML и риска supply chain actions.
Чеклист:
- Осознанно pin или доверяйте actions.
- Минимальные права токена.
- Required checks как merge gates.
- Защищённые environments для production deploy.