Баннер записи 'Обновление 0.6.10: исправления ошибок и новый пайплайн сборки билдов'

Обновление 0.6.10: исправления ошибок и новый пайплайн сборки билдов

Исправления в Web билде:

  • Исправил ошибку с разрешением, отключил изменение в настройках
  • Исправил ошибки, связанные с локализацией: иногда тексты русском не отображались
  • Исправил падение при выходе из боя
  • Добавил тултип, при нажании на заблокированную кнопку Хост в мультиплеере
  • Немного улучшил производительность

Общие исправления:

  • Исправил ошибку, из-за которой на локации "Спорный остров" у синей команды создавались лишние постройки
  • Добавил звуковые уведомления на экране лобби. Теперь можно услышать, когда кто-то подключился или отключился
  • Немного уменьшил размер билда

Новый пайплайн сборки

При выпуске этого обновления сборка билдов отнимала очень много времени. Процесс выглядел так:

  1. Написать код и/или обновить ассеты;
  2. Сделать билд на Windows (ожидание 5-10 минут) и протестировать
  3. Переключить платформу на Web (ожидание 10-20 минут)
  4. Собрать под Web (ожидание 20-30 минут) и протестировать.

Если что-то идет не так, то алгоритм нужно повторять. Учитывая, что некоторые ошибки повторялись только в релизной сборке под Web, в ожидании я проводил слишком много времени. Ведь при переключении платформы в Unity происхдит не только реимпорт ассетов, но и сброс кэша сборки.

Я понял, что так работать нельзя и решил оптимизировать сборку билдов. У меня есть домашний сервер, но использовать его под агента сборки я не могу, так как на нем очень маленький SSD. Поэтому пришлось организовать на своей рабочей машине.

Мой план был такой:

  • Создать второй клон репозитория только под Web сборку. Тогда как основной клон - под Windows. Так исключается переключение между платформами.
  • Написать набор скриптов, которые запускают сборки без запуска визуальной части редактора Unity.
  • Скрипт также должны:

Работаю я под Windows, поэтому я решил создавать скрипты по PowerShell, к тому же у меня уже был небольшой опыт написания таких скриптов. В качестве формата для конфигурации я выбрал XML, так как он поддерживается PowerShell из коробки. Для YAML пришлось бы устанавливать дополнительный модуль.

Разумеется, писать самостоятельно такие скрипты - расточительство, поэтому я попросил написать их Claude. После нескольких итераций получилось реализовать мою задумку. 

Я остался доволен результатом: расход времени на простой из-за смены платформы и билда без кэша сильно снизился (правда, замерить слишком трудозатратно). Но все еще не идеально: так как во время сборки я не могу открывать редактор. В будущем, если проект разрастется, можно будет думать о полноценном CI/CD с отдельными билд агентами.

Следующим шагом хочу автоматизировать заливку билдов на платформы. И попробовать заменить клон репозитория для Web проекта на симлинки: сделать ссылки на папки Assets, Packages, ProjectSettings и некоторые другие, которые нужны для нормальной работы проекта Unity. Так я ожидаю исключить шаг с актуализацией клона.


Спасибо за то, что прочитали! Как бы вы улучшили процесс сборки? Как он организован у вас на проекте? 

Комментарии (1)

Войдите, чтобы написать комментарий

Войти
Large Spinner