Новый код вернул на macOS отказ, который там уже вычищали #55
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Быстрые тесты на каждый пуш. | |
| # | |
| # Здесь только то, что ничего не трогает: ни микрофона, ни клавиатуры, ни сети, | |
| # ни модели. `test_insert.py` и `test_hotkey.py` шлют настоящие нажатия и двигают | |
| # мышь - им место на живой машине, а не в CI, где за ними никто не смотрит. | |
| # `test_e2e.py` тянет модель на 226 МБ, и гонять её на каждый пуш незачем. | |
| # | |
| # Польза одному человеку скромная, и преувеличивать её не надо: соло-разработчик | |
| # и так прогоняет тесты локально. Но `import app` ловит опечатку, из-за которой | |
| # приложение молча не стартует под pythonw, - класс отказов, который выглядит | |
| # как «кликнул по ярлыку, ничего не произошло». Такое уже случалось. | |
| # | |
| # windows-latest, потому что половина проекта - Win32: pywin32, keyboard, хуки. | |
| # На Linux это просто не поставится. | |
| name: тесты | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| workflow_dispatch: | |
| jobs: | |
| fast: | |
| runs-on: windows-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| cache: pip | |
| - name: зависимости | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: приложение вообще импортируется | |
| run: python -c "import app" | |
| - name: контраст палитры | |
| run: python test_theme.py | |
| - name: переводы интерфейса | |
| run: python tools/check_i18n.py | |
| - name: чистка текста | |
| run: python test_clean.py | |
| - name: сочетания клавиш | |
| run: python test_inputspec.py | |
| - name: подстановки по истории | |
| run: python test_suggest.py | |
| - name: склейка и автоввод | |
| run: python test_join.py | |
| - name: вставка через буфер обмена | |
| run: python test_clipboard.py | |
| - name: преобразования текста | |
| run: python test_transforms.py | |
| - name: длинная запись | |
| run: python test_long.py | |
| - name: разбор речи на ходу | |
| run: python test_stream.py | |
| - name: модель знаков препинания | |
| run: python test_punct_model.py | |
| - name: заметки | |
| run: python test_notes.py | |
| - name: разбор своей речи | |
| run: python test_insights.py | |
| - name: вопрос по интонации | |
| run: python test_intonation.py | |
| - name: английская речь в кириллице | |
| run: python test_language.py | |
| - name: выгрузка и загрузка личного | |
| run: python test_backup.py | |
| - name: статистика | |
| run: python test_stats.py | |
| - name: обновлятор | |
| run: python test_update.py | |
| - name: полировка и предохранители | |
| run: python test_llm.py | |
| # --- Переезд визуала на React --- | |
| - name: мост «страница - Python» | |
| run: python test_bridge.py | |
| - name: CSS не разъехался с theme.py | |
| run: python tools/gen_theme.py --check | |
| - name: api.ts не разъехался с Backend | |
| run: python tools/gen_bridge.py --check | |
| - name: иконки не разъехались с Icons.qml | |
| run: python tools/check_icons.py | |
| - name: словарь страницы не разъехался с i18n.py | |
| run: python tools/gen_i18n.py --check | |
| - name: строки страницы идут через t() | |
| run: python tools/check_web_i18n.py | |
| - name: node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| cache: npm | |
| cache-dependency-path: web/package-lock.json | |
| # npm ci, а не install: ставит ровно то, что в package-lock, и падает при | |
| # расхождении. install молча подтянул бы новые версии, и «у меня | |
| # собирается» перестало бы значить «соберётся у всех». | |
| - name: зависимости страницы | |
| run: npm ci | |
| working-directory: web | |
| - name: типы и сборка страницы | |
| run: npm run build | |
| working-directory: web | |
| - name: доступность витрины | |
| run: npm run test | |
| working-directory: web | |
| env: | |
| # Иначе кириллица в выводе превращается в мусор и провал не прочитать. | |
| PYTHONIOENCODING: utf-8 |