Интеграция с GitHub Actions

Автоматизируйте визуальное тестирование вашего стека прямо в CI/CD пайплайне. Настройка за 5 минут.

Перейти к настройке

Пошаговое руководство

Интеграция SnapStack в ваш репозиторий позволяет автоматически делать скриншоты при каждом пуше или мёрже, сравнивать их с референсами и блокировать деплой при визуальных регрессиях.

1. Регистрация и API ключ

Зарегистрируйтесь в панели SnapStack и создайте новый проект. Скопируйте ваш SNAPSTACK_API_KEY из раздела «Настройки проекта». Этот ключ необходим для аутентификации запросов от вашего CI-сервера.

2. Настройка секретов в GitHub

Перейдите в настройки вашего репозитория на GitHub: Settings > Secrets and variables > Actions. Нажмите New repository secret и сохраните ключ с именем SNAPSTACK_API_KEY. Это гарантирует, что ваши учетные данные не попадут в лог сборки.

3. Установка CLI-инструмента

SnapStack предоставляет легковесный CLI для удобной интеграции. Добавьте шаг установки в начало вашего воркфлоу:

npm install -g @snapstack/cli

Или используйте бинарный файл для Linux-нод GitHub Actions.

4. Конфигурация воркфлоу

Создайте файл .github/workflows/visual-tests.yml. Ниже приведен пример конфигурации для запуска тестов при каждом пуше в ветку main:

name: Visual Regression Tests
on: [push]

jobs:
  snapstack-test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Setup Node
        uses: actions/setup-node@v3
        with:
          node-version: '18'
      - name: Run SnapStack
        run: snapstack run --config snapstack.config.json
        env:
          SNAPSTACK_API_KEY: ${{ secrets.SNAPSTACK_API_KEY }}

5. Написание тестовых сценариев

Создайте файл конфигурации snapstack.config.json в корне проекта. Укажите URL вашей локально поднятой версии приложения (доступной через туннель, например, ngrok) и список селекторов для захвата.

{
  "baseUrl": "http://localhost:3000",
  "screenshots": [
    { "id": "homepage-hero", "selector": ".hero-section" },
    { "id": "dashboard-table", "selector": "#main-table" }
  ]
}

Обработка результатов

После выполнения воркфлоу SnapStack вернет отчет о сравнении.

Если визуальные различия превышают допустимый порог (по умолчанию 0.5%), шаг завершится с ошибкой, блокируя мёрж. Вы можете просмотреть детальный отчет с подсветкой измененных пикселей в веб-интерфейсе SnapStack по ссылке, выведенной в лог GitHub Actions.

Для обновления референсных скриншотов (например, после согласованного редизайна) используйте флаг --update в команде запуска:

snapstack run --update