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.