GitHub Actions — конкретна реалізація переносної CI-моделі

Переносна CI-модель має однакову логіку незалежно від провайдера: подія запускає workflow, job отримує чистий runner, виконує перевірки, зберігає evidence, а людина приймає рішення про merge.

GitHub Actions — лише один YAML-синтаксис для цієї моделі. Та сама послідовність переноситься на GitLab CI, Jenkins або Bitbucket Pipelines із відповідними назвами полів.

ПоняттяРоль
WorkflowВерсіонований YAML-сценарій автоматизації
EventУмова запуску, наприклад pull_request до main
JobОкрема одиниця роботи на runner
StepКоманда або action усередині job
RunnerТимчасове стандартизоване середовище
ArtifactФайл, збережений після job для перегляду

Мінімальний PR workflow

Workflow має проходити звичайний Git-review. Починайте з contents: read і додавайте інші permissions лише тоді, коли конкретний крок цього вимагає.

.github/workflows/pr-check.yml
name: PR verification

on:
  pull_request:
    branches: [main]

permissions:
  contents: read

jobs:
  verify:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    steps:
      - uses: actions/checkout@v4
      # setup runtime, build і tests додаються нижче

Claude у CI як обмежений аналізатор

  1. Підготуйте конкретний вхідний файл: diff, build log або test log.
  2. Передайте Claude тільки цей вхід і вузький prompt.
  3. Попросіть структурований Markdown або JSON без редагування коду.
  4. Збережіть результат як workflow artifact.
  5. Перегляньте висновок разом із первинним логом перед рішенням.
Ілюстрація bounded analysis-кроку
- name: Prepare diff
  run: git show --stat --patch --format=medium HEAD > pr.diff

- name: Analyze changes
  env:
    ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
  run: |
    cat pr.diff | claude -p "Стисло опиши зміни та три можливі ризики" > pr-review.md

Secrets, artifacts і timeout

  • зберігайте API-ключі в GitHub Secrets;
  • не друкуйте secrets у prompt, логу або uploaded artifact;
  • обмежуйте job через timeout-minutes;
  • використовуйте pull-requests: write лише для усвідомленого автоматичного коментування PR;
  • завантажуйте тільки потрібні Markdown, JSON або failure-log файли.
Збереження результату як artifact
- name: Upload review
  uses: actions/upload-artifact@v4
  with:
    name: pr-review
    path: pr-review.md

Переносний checklist workflow

ПитанняЩо має бути явно
Що запускає pipeline?Event і цільова гілка
Де працює job?Runner та його runtime setup
Які права доступні?permissions на рівні workflow/job
Які команди є джерелом правди?README і локальні scripts
Що зберігається?Логи та потрібні artifacts
Хто приймає рішення?Людина або branch protection policy, не висновок Claude

Канонічне джерело уроку · JavaRush

Відкрити матеріал JavaRush