Контекст
Для обеспечения стабильности инструментов автоматизации необходимо внедрить Pipeline, который будет проверять работоспособность CLI-утилиты при каждом Push или Pull Request. Это предотвратит регрессии в процессе настройки окружения (env setup) и гарантирует, что Core-пакет Docker всегда собирается без ошибок. Автоматизация тестирования CLI критична, так как ошибки в скриптах инициализации блокируют работу всей команды.
Технические требования
- Локация логики:
.github/workflows/ci.yml, scripts/tests/cli.test.ts
- Инструменты: GitHub Actions, Docker, Jest/Vitest (для тестов), ShellSpec (для проверки shell-алиасов).
- Логика работы:
- Trigger: Запуск при push в
main, develop и любых PR.
- Job: Build: Сборка Docker-образов бэкенда и аналитики для проверки валидности
Dockerfile.
- Job: Lint: Проверка кода CLI на соответствие стандартам (ESLint/Prettier).
- Job: CLI-Test:
- Эмуляция пользовательского ввода (использование
yes или моков для inquirer).
- Проверка создания файла
.env из .env.example.
- Проверка валидации некорректных данных (например, букв в поле порта).
Цель и критерии приемки (Definition of Done)
Важные указания
- Производительность: Использовать
actions/cache для node_modules и слоев Docker, чтобы ускорить повторные запуски.
- Ошибки: Workflow должен падать с информативным логом, если CLI не прошел валидацию или Docker-образ не собрался из-за синтаксических ошибок.
- Безопасность: Использовать
secrets.GITHUB_TOKEN для операций внутри репозитория. Не передавать реальные переменные окружения в логи CI при тестировании CLI.
Контекст
Для обеспечения стабильности инструментов автоматизации необходимо внедрить Pipeline, который будет проверять работоспособность CLI-утилиты при каждом Push или Pull Request. Это предотвратит регрессии в процессе настройки окружения (
env setup) и гарантирует, что Core-пакет Docker всегда собирается без ошибок. Автоматизация тестирования CLI критична, так как ошибки в скриптах инициализации блокируют работу всей команды.Технические требования
.github/workflows/ci.yml,scripts/tests/cli.test.tsmain,developи любых PR.Dockerfile.yesили моков дляinquirer)..envиз.env.example.Цель и критерии приемки (Definition of Done)
.github/workflows, настроены базовые шаги (checkout, setup-node, install deps).npm run env:setup -- --verify.docker-compose configна этапе CI.Важные указания
actions/cacheдляnode_modulesи слоев Docker, чтобы ускорить повторные запуски.secrets.GITHUB_TOKENдля операций внутри репозитория. Не передавать реальные переменные окружения в логи CI при тестировании CLI.