GitHub Actions: Полное руководство по автоматизации для вайбкодеров
Основной чат
Чат для вайбкодеров: новости, гайды, поиск исполнителей, маркетплейс и разбор реальных кейсов.
Если ты уже умеешь работать с GitHub, но до сих пор деплоишь проект вручную или забываешь запускать тесты — эта статья изменит твою жизнь.
GitHub Actions — это твой личный DevOps-инженер, который работает 24/7 бесплатно (в разумных пределах).
В этой статье мы разберём всё с нуля до продвинутого уровня, специально под вайбкодеров и проекты, которые создаются с помощью ИИ.
Зачем GitHub Actions именно вайбкодеру?
Представь типичную ситуацию:
Ты попросил агента написать фичу → проверил → закоммитил → и забыл:
- запустить тесты
- проверить линтер
- задеплоить на прод
В итоге через день клиент пишет: «У меня ничего не работает».
GitHub Actions решает эту проблему навсегда.
С ним ты можешь настроить:
- Автоматический запуск тестов при каждом Pull Request
- Автоматический деплой при пуше в
main - Проверку кода на уязвимости
- Сборку Docker-образа
- Отправку уведомлений в Telegram
- Запуск AI-агента по расписанию
И всё это — бесплатно и работает даже когда ты спишь.
Что такое GitHub Actions простыми словами
GitHub Actions — это система автоматизации, встроенная прямо в GitHub.
Ты создаёшь файл с инструкциями (workflow), и GitHub выполняет их автоматически при определённых событиях (пуш, Pull Request, по расписанию и т.д.).
Основные понятия
| Термин | Что это значит | Аналогия |
|---|---|---|
| Workflow | Файл с автоматизацией (.yml) | Сценарий пьесы |
| Job | Отдельная задача внутри workflow | Акт в пьесе |
| Step | Один шаг внутри Job (команда или действие) | Реплика актёра |
| Runner | Виртуальная машина, на которой выполняется job | Сцена |
| Action | Готовый блок кода (например, actions/checkout) |
Готовый реквизит |
Шаг 1. Создаём первый Workflow
- Перейди в свой репозиторий
- Зайди во вкладку Actions
- Нажми New workflow → set up a workflow yourself
GitHub создаст папку .github/workflows/ и файл main.yml.
Пример самого простого workflow:
name: Hello World
on:
push:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Say hello
run: echo "Привет, вайбкодер! 🚀"
Сохрани файл — и workflow уже работает!
Шаг 2. Основные триггеры (on:)
Самые полезные триггеры для вайбкодера:
on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main ]
schedule:
- cron: '0 9 * * 1' # Каждый понедельник в 9:00 UTC
workflow_dispatch: # Ручной запуск из интерфейса
Самые популярные комбинации:
push+main→ деплой в продакшенpull_request→ запуск тестов и проверокworkflow_dispatch→ ручной запуск (очень удобно)
Шаг 3. Секреты и переменные окружения
Никогда не храни API-ключи и пароли в коде!
Как добавить секрет:
- Репозиторий → Settings → Secrets and variables → Actions
- Нажми New repository secret
- Добавь, например:
VERCEL_TOKENRAILWAY_TOKENTELEGRAM_BOT_TOKEN
Использование в workflow:
- name: Deploy to Vercel
env:
VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }}
run: vercel --prod --token $VERCEL_TOKEN
Шаг 4. Кэширование (чтобы было быстро)
Без кэширования каждый запуск workflow будет скачивать все зависимости заново. Это долго и дорого.
Пример кэширования Node.js:
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
Для Python:
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip'
Шаг 5. Автоматический деплой (самое вкусное)
Деплой на Vercel
name: Deploy to Vercel
on:
push:
branches: [ main ]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Deploy to Vercel
uses: amondnet/vercel-action@v25
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}
vercel-args: '--prod'
Деплой на Railway
- name: Deploy to Railway
run: railway up --service ${{ secrets.RAILWAY_SERVICE_ID }}
env:
RAILWAY_TOKEN: ${{ secrets.RAILWAY_TOKEN }}
Шаг 6. Полезные готовые Actions
actions/checkout@v4— клонирование репозиторияactions/setup-node@v4— установка Node.jsactions/setup-python@v5— установка Pythonactions/cache@v4— кэшированиеslackapi/slack-github-action— уведомления в Slackappleboy/telegram-action— уведомления в Telegram
Лучшие практики для вайбкодеров
- Всегда используй
workflow_dispatch— чтобы можно было запустить вручную - Разделяй большие workflow на несколько мелких (CI + CD)
- Используй матрицы для тестирования на разных версиях Python/Node
- Добавляй
continue-on-errorдля некритичных шагов - Пиши понятные названия шагов — это важно, когда workflow падает
Частые ошибки
- Забывают добавить
actions/checkout@v4 - Хранят секреты прямо в коде
- Не используют кэширование (workflow выполняется по 10–15 минут)
- Делают слишком сложные workflow (лучше разбивать)
- Не тестируют workflow локально (можно через
act)