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 лише тоді, коли конкретний крок цього вимагає.
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 як обмежений аналізатор
- Підготуйте конкретний вхідний файл: diff, build log або test log.
- Передайте Claude тільки цей вхід і вузький prompt.
- Попросіть структурований Markdown або JSON без редагування коду.
- Збережіть результат як workflow artifact.
- Перегляньте висновок разом із первинним логом перед рішенням.
- 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 файли.
- 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