Английская версия | Сборка установщика | Указатель проверок
Выполняйте проверки из корня репозитория в Windows с Python 3.12 x86 и Git. Автоматические проверки используют синтетические файлы игры и изолированные папки. Steam и запуск игровых бинарных файлов не требуются. Для проверки установки нативных модулей используйте отдельную процедуру проверки установки и NitroApi.
python -m unittest discover -s installer/tests -t .Команда должна завершиться без ошибок тестов. Отдельно запишите пропуски, зависящие от платформы. Проверяется следующее поведение:
| Область | Ожидаемый результат |
|---|---|
| Установка и обновление | Создается новая копия; существующие установки из ZIP и через установщик допускают повторное обновление. |
| Проверка игры и пакета | Неподдерживаемые или поврежденные файлы игры и измененные файлы пакета отклоняются с сообщением об ошибке. |
| Настройки и удаление | Обновление сохраняет настройки; удаление с сохранением файлов оставляет пользовательские данные; полное удаление удаляет выбранную копию. |
| Отмена и восстановление | После отмены или ошибки обновления восстанавливаются прежние файлы; прерванное восстановление можно повторить без потери посторонних данных. |
| Пути и независимые копии | Пересекающиеся пути отклоняются; изменение регистра имени папки не приводит к потере пользовательских файлов; изменение одной копии не затрагивает другую. |
| Скрипт сборки | Справка и поддерживаемые имена параметров работают под доступными версиями PowerShell; ошибочные параметры и сбои команд останавливают сборку. |
Подготовьте закрепленные зависимости и компилятор, затем запустите проверку на синтетических файлах:
python -m pip install -r installer/requirements-build.txt
.\tools\installer\install_inno.ps1 -Destination build\installer-tools\inno-6.7.3
python tools/installer/smoke_installer.py --python (Get-Command python).Source `
--iscc build/installer-tools/inno-6.7.3/ISCC.exe --work-dir build/installer-smoke/manualВыберите рабочую папку, которая еще не существует. Утилита создает синтетический источник, собирает средства установки и проверочные установщики, затем выполняет установку и удаление в этой папке. Она также создает и проверяет отдельные записи удаления и ярлыки меню «Пуск» текущего пользователя.
Команда должна завершиться успешно и записать result.json со значением state, равным passed. Проверяются новая установка, независимые копии, обновление, повторное обновление, установка из ZIP, отмена и оба режима удаления. Источник должен остаться без изменений. Обновленные файлы должны соответствовать пакету, настройки и пользовательские файлы должны сохраниться, а удаление одной копии должно оставить ярлык другой. В проверку входят пути с пробелами, завершающим разделителем и именами, которые могли бы дать одинаковые ярлыки.
Неизмененную служебную программу установки из того же проверенного состояния исходников можно передать через --helper <абсолютный-путь-к-программе>. Для проверки обновления более ранней синтетической установки используйте --previous-installer <абсолютный-путь-к-инсталлеру>. Сохраните журналы установки и удаления и result.json из выбранной рабочей папки.
Для проверки упаковки готовой папки Release вместе с синтетическим установщиком используйте скрипт сборки с параметром -SmokeTest. Храните артефакты выпуска отдельно от синтетических проверочных установщиков.
Используйте источник и установщик, созданные синтетической проверкой. Для рабочей папки из примера выше:
.\build\installer-smoke\manual\output\NextClient-0.0.2-smoke-setup.exe `
/GAMEDIR="$PWD\build\installer-smoke\manual\source with spaces"Выберите новую папку назначения внутри рабочей папки проверки. Для проверки места на диске и отмены копирования подготовьте синтетический источник объемом свыше 1024 МБ.
- В режиме новой установки убедитесь, что обе кнопки Browse открывают системное окно выбора папки Windows с адресной строкой. При выборе родительской папки назначения к пути должно добавляться
Counter Strike 1.6 NextClient. Введенный вручную путь должен использоваться целиком. - Проверьте папку по умолчанию:
C:\Games\Counter Strike 1.6 NextClient. Перед установкой выберите изолированную папку проверки. Требуемое место должно учитывать копируемый источник и пакет; объем свыше 1024 МБ должен отображаться в ГБ. - Отмените операцию во время копирования. Установщик должен дождаться восстановления и не оставить завершенную новую установку. При отмене обновления должны восстановиться прежние файлы и настройки.
- Завершите новую установку. На последней странице должна быть галочка Create a desktop shortcut. Проверьте путь ярлыка и наличие
unins000.exeв корне игры. - Обновите проверочную копию. Browse должен использовать выбранную папку без добавления имени и предупреждения о существующей папке. Галочка ярлыка на рабочем столе не должна предлагаться.
- Удалите проверочную копию. Проверьте выбранный режим удаления и убедитесь, что удалены ярлыки только этой копии.
Не используйте рабочую игру разработчика для проверки восстановления или полного удаления. При ошибке восстановления сохраните журналы и .nextclient/transaction для диагностики.
При изменении workflow выполните actionlint .github/workflows/build.yml .github/workflows/release.yml. Убедитесь, что задача установщика получает NextClient-${{ github.sha }} после успешной сборки нативных модулей, а публикация ожидает проверки установщика. EXE, контрольная сумма и манифест должны включаться в файлы выпуска и подтверждение происхождения сборки.
Сохраните ревизию исходников, снимок относящихся к проверке файлов, версии инструментов, команды, коды завершения, пропуски, хеши артефактов и пути журналов в отчете сессии под .superpowers/. Разделяйте автоматические проверки и наблюдения интерфейса. Используйте успешные результаты повторно для неизмененных исходников и конфигурации. Локальная проверка не подтверждает запуск GitHub Actions или публикацию выпуска.