CI/CD для статического сайта: 368 тестов и zero-downtime деплой

CI/CD пайплайн GitHub CMS включает 368 автоматических тестов в 10 категориях (контент, Markdown, SEO, безопасность, PixInLink, утилиты, интеграция, производительность, доступность, деплой). Все тесты выполняются при каждом push и блокируют деплой при ошибках.

Этапы CI/CD пайплайна

Этап Инструмент Время
Validate content validate-content.mjs 2s
Install dependencies npm ci 15s
Build static site vite build 12s
Validate SEO files validate-seo-files.mjs 1s
Run tests (10 категорий) npm test 5s
Deploy to VPS rsync 3s
Total ~40s

Zero-downtime деплой

Деплой использует атомарное переключение: rsync в /var/www/site/next → проверка health check → переключение symlink current → next. Ни одной секунды простоя.

FAQ

Что делать если тесты упали?

Ответ: Логи тестов выводятся в GitHub Actions. Типичные ошибки: нарушение формата Frontmatter, отсутствие обязательных полей (title, description, slug), секретные токены в контенте. Каждая ошибка содержит указание на файл и строку.