🚀 Руководство по скриптам JXCT¶
Версия: 3.11.0 Дата: Июль 2025
📋 Обзор¶
В проекте JXCT используются автоматические и интерактивные скрипты для автоматизации разработки и CI/CD. Все скрипты приведены в папке scripts/
.
- 🔄 Автоматические — работают без ожидания ввода пользователя
- 💬 Интерактивные — требуют ручного подтверждения
🔄 Автоматические скрипты¶
1. deploy.ps1
— Гибридный деплой (автоматический и интерактивный режим)¶
# Автоматический режим
./scripts/deploy.ps1 -Auto
# С кастомным сообщением
./scripts/deploy.ps1 -Auto -CommitMessage "Обновление API документации"
# Интерактивный режим (по умолчанию)
./scripts/deploy.ps1
Что делает: - ✅ Автоматически коммитит незакоммиченные изменения - ✅ Генерирует документацию через MkDocs - ✅ Проверяет корректность сборки - ✅ Отправляет изменения в Git - ✅ Не требует ручного ввода (в режиме -Auto)
2. run_simple_tests.py
— Полный прогон тестов¶
3. ultra_quick_test.py
— Ультра-быстрый smoke-тест¶
4. run_clang_tidy_analysis.py
— Статический анализ¶
5. format_code.py
— Универсальное форматирование кода¶
6. auto_format.py
— Удаление trailing whitespace и поиск длинных строк¶
7. pre-commit.py
— Pre-commit хуки¶
8. release.ps1
и release_manager.py
— Управление версиями и релизами¶
./scripts/release.ps1 version -Type patch
./scripts/release.ps1 release -Version "3.10.1" -Message "Новые функции"
python scripts/release_manager.py version --type patch
python scripts/release_manager.py release --version "3.10.1"
🧪 Тестовые скрипты¶
Python скрипты для тестирования¶
# Полные тесты
python scripts/run_simple_tests.py
# Ультра-быстрый smoke-тест
python scripts/ultra_quick_test.py
# E2E тесты
python scripts/run_e2e_tests.py
# Performance тесты
python scripts/run_performance_tests.py
# Комплексные тесты (расширенное покрытие)
python scripts/run_comprehensive_tests.py
🛠️ Форматирование кода¶
Универсальный форматтер¶
Удаление trailing whitespace¶
⚡ Быстрые команды¶
🚀 Основные команды¶
⚡ Ультра-быстрое тестирование (рекомендуется)¶
Время: ~5 секунд | Зависания: НЕТ📋 Полное тестирование¶
Время: ~2 минуты | Зависания: НЕТ🧪 Отдельные тесты¶
Python тесты¶
Тесты с моками¶
🔨 Сборка¶
ESP32 сборка¶
Production сборка¶
🔍 Анализ кода¶
Быстрый clang-tidy¶
Форматирование кода¶
🚨 Решение проблем¶
Если тесты зависают¶
- Используйте
ultra_quick_test.py
- самый надежный - Проверьте подключение к интернету
- Перезапустите терминал
Если сборка падает¶
pio run -t clean
pio run -e esp32dev
Если тесты падают¶
- Проверьте Python версию (3.8+)
- Установите зависимости:
pip install pytest
- Запустите
ultra_quick_test.py
📈 Рекомендации¶
- Для ежедневной работы:
ultra_quick_test.py
- Для полной проверки:
run_simple_tests.py
- Для отладки: отдельные тесты
🎯 Цели качества¶
- ✅ Все тесты проходят
- ✅ Покрытие >85%
- ✅ Сборка успешна
- ✅ Нет критических предупреждений
🧑💻 Рекомендации по использованию¶
Для разработки:¶
- Используйте
deploy.ps1
для деплоя документации (с параметром -Auto для автоматизации) - Запускайте тесты перед каждым коммитом
- Используйте
format_code.py
для форматирования кода
Для CI/CD:¶
- Используйте только актуальные скрипты, перечисленные выше
- Все тесты и анализы должны запускаться автоматически через GitHub Actions
⚠️ Удалённые/устаревшие скрипты¶
- auto_deploy.ps1 (заменён на deploy.ps1)
- format_all.ps1 (заменён на format_code.py)
- run_all_tests.py (дублирует run_simple_tests.py)
- fix_anchors*.py, remove_duplicate_toc.py (устарели)
- run_clang_tidy_analysis_original.py (устарел)
- quick-test.yml, docs.yml.disabled (workflow удалены)
📝 История изменений¶
- 2025-07-17: Глобальный рефакторинг инфраструктуры, удалены дублирующие и устаревшие скрипты, обновлено руководство.