Автоматизация процессов сборки, тестирования и развертывания фронтенд-приложений становится неотъемлемой частью современного веб-разработки. Использование CI/CD-подхода (Continuous Integration / Continuous Deployment) позволяет значительно повысить стабильность, ускорить выпуск новых версий и минимизировать количество ошибок, возникающих при ручном деплое. В этом контексте GitHub Actions выступает мощным инструментом, позволяющим организовать CI/CD-пайплайн непосредственно внутри репозитория проекта. Ниже представлен подробный гайд по настройке CI/CD для React-приложения с использованием GitHub Actions.
В первую очередь необходимо понять, что GitHub Actions — это встроенный в GitHub инструмент автоматизации, позволяющий запускать кастомные сценарии при наступлении определённых событий в репозитории, таких как push, pull request, merge и др. Он использует YAML-файлы для описания рабочих процессов, которые могут включать в себя шаги по установке зависимостей, сборке проекта, запуску тестов и публикации на сервер или в облако.
Перед началом настройки необходимо, чтобы проект на React уже был создан и размещён в репозитории на GitHub. Желательно, чтобы проект был построен с использованием Create React App или аналогичной системы, обеспечивающей стандартную структуру. Также предполагается, что в проекте уже настроены тесты (например, с использованием Jest), и существует скрипт сборки (npm run build
). Если вас интересует этот вопрос, нажмите на ссылку Веб-разработка и обучение. Развернутое объяснение доступно по указанному адресу.
Следующим шагом становится создание конфигурационного файла GitHub Actions. Этот файл должен быть размещён по пути .github/workflows/main.yml
в корне репозитория. Он будет описывать всю цепочку CI/CD, включая установки Node.js, кэширование зависимостей, запуск тестов, сборку и деплой.
Для развёртывания приложения могут использоваться различные подходы, например GitHub Pages, Firebase, Vercel, AWS S3 или собственный сервер с доступом по SSH. Для целей этого гайда будет рассмотрена реализация деплоя на GitHub Pages как простой и доступный способ публикации статического React-сайта.
Основные шаги настройки CI/CD через GitHub Actions включают:
-
Создание рабочего процесса (
workflow
) в каталоге.github/workflows
: создаётся файл с расширением.yml
, напримерci.yml
, который будет содержать описание всех этапов CI/CD. -
Указание события триггера: в начале файла указывается, при каком событии в репозитории должен запускаться пайплайн, например
on: push
илиon: pull_request
. -
Определение среды выполнения: с помощью ключа
runs-on
задаётся операционная система, на которой будет выполняться сборка (обычноubuntu-latest
). -
Настройка стратегий Node.js: можно указать матрицу версий Node.js, на которых должен тестироваться проект, или зафиксировать одну стабильную версию.
-
Кэширование зависимостей для ускорения пайплайна: использование
actions/cache
позволяет избежать повторной загрузки пакетов при каждом запуске workflow. -
Установка зависимостей проекта: шаг, в котором вызывается
npm install
илиyarn install
. -
Запуск тестов: осуществляется вызов
npm test
или аналогичной команды, в зависимости от настроек проекта. -
Сборка проекта: запуск
npm run build
для создания папкиbuild
со статическими файлами. -
Деплой на GitHub Pages: с использованием
peaceiris/actions-gh-pages
, где необходимо передать путь к собранным файлам и секретный токен доступаGH_TOKEN
.
Пример базового файла ci.yml
, реализующего указанные этапы: