Коротко
В Actions собираете проект, по зелёной сборке заходите на VPS по SSH и обновляете контейнеры или PM2. Секреты — только в GitHub Secrets, не в репозитории.
Подробнее
Минимальный пайплайн:
- Триггер:
pushвmain. - Job:
npm ci,npm run build(и тесты, если есть). - Job деплоя: SSH на сервер,
git pull, сборка илиdocker compose up -d --build.
На сервере ключ деплоя с ограниченными правами, не root-пароль в секретах. Для Docker удобно выкладывать только нужный сервис: --no-deps frontend.
Не собирайте прод-секреты в образ. .env живёт на VPS. Если фронт ходит в API на этапе build, либо force-dynamic, либо сначала поднимаете backend.
Ошибки CI читайте в логе job, не на глаз на сервере. Если сборка зелёная, а сайт старый — деплой не дошёл: проверьте SSH, путь и что перезапустился нужный процесс.
См. также
Ключевые выводы
CI ловит поломку до выкладки. Деплой — отдельный шаг по SSH. Секреты в GitHub Secrets и на сервере, не в git.
FAQ
Нужен ли GitHub Actions, если деплою руками?
Не обязателен. Он экономит время и не даёт выкатить код, который не собирается.
Можно ли деплоить с ноутбука скриптом?
Да. Actions удобнее, когда в команде несколько людей и нужен одинаковый путь.
Почему build в CI падает, а локально нет?
Другая версия Node или нет переменных окружения. Зафиксируйте версию в workflow и проверьте Secrets.