Автоматизируй всё! Настройка CI-CD в Unity Часть вторая. Сборка Unity Cloud build

от автора

Привет, читатель!

В предыдущей статье я рассказал о существующих CI/CD системах и объяснил, почему мы выбрали связку Unity Cloud Build + TeamCity. В этой и следующих статьях я покажу вам как вы можете настроить такую же связку самостоятельно.

В этой статье мы сделаем нашу первую сборку через Unity Cloud Build

Усаживайтесь поудобнее — впереди много интересной и полезной информации!

Об авторе

Меня зовут Борис, я Tech Lead в компании, занимающейся игровым аутсорсингом и аутстаффингом. За почти пять лет я участвовал в проектах как для небольших инди-студий, так и для топ-5 игровых компаний мира, а еще я последние три года руковожу разработкой онлайн-нард.

Также веду блог в Telegram, где делюсь полезными советами для Unity-разработчиков.

Автор этой статьи не является DevOps-специалистом и не претендует на идеальное или универсальное решение. Материал носит обучающий и информационный характер

Часть 0. Создаем Unity проект и репозиторий

Чтобы не перегружать статью лишними деталями, я не буду подробно останавливаться на создании нового репозитория и Unity-проекта.

Для примера я подготовил тестовый проект на GitLab, но вы без проблем сможете использовать GitHub или любую другую систему контроля версий.

Вот так выглядит моя потрясающая игра

Вот так выглядит моя потрясающая игра

Часть 1. Настраиваем Unity cloud build сборку

Шаг 1. Заходим в Unity cloud build dashboard

Шаг 2. Создаем новый проект

Создание нового проекта в Unity dashboard

Создание нового проекта в Unity dashboard

Шаг 3. Переходим в Products => DevOps

Шаг 4. Раскрываем вкладку Build Automation и выбираем Configurations

Если вы все сделали правильно то после Шага 4 у вас должно появится следующее окно

Если вы все сделали правильно то после Шага 4 у вас должно появится следующее окно

Шаг 5. Если у вас нет лицензии то начните бесплатный триальный период

Кнопка активации бесплатного триального периода

Кнопка активации бесплатного триального периода

Шаг 6. Создайте новую конфигурацию

Кнопка для создания конфигурации

Кнопка для создания конфигурации

Шаг 7. Выберите вашу систему контроля версий

Выбор системы контроля версий

Выбор системы контроля версий

Шаг 8. Создайте персональный Access Token в той системе версий, где находится ваш репозиторий

Как создать Access token в gitlab сказано тут
Как создать Access token в github сказано тут
Можно еще спросить у chat GPT

Шаг 9. Добавьте ваш Access Token в соответствующее поле

Шаг 10. Если вы все сделали правильно, то у вас появится возможность выбрать ваш проект из выпадающего меню

Выпадающее меню со списком проектов

Выпадающее меню со списком проектов

Шаг 11. Выбираем проект и нажимаем на Save

Шаг 12. Переходим на вкладку конфигурации и создаем нашу первую конфигурацию

Создаем нашу первую конфигурацию

Создаем нашу первую конфигурацию

Шаг 13. Выбираем WebGL

Напомню, что в рамках данного туториала рассматриваем именно билд под WebGL.

Если у вас нет опыта в CI/CD, то я бы рекомендовал сначала проделать шаги и настроить сборку на WebGL, а потом настроить и остальные платформы самостоятельно

Выбираем WebGL

Выбираем WebGL

Шаг 14. Настраиваем Basic info

Target name — это название вашей конфигурации. Я рекомендую использовать название по следующему шаблону <Название проекта>-<Название ветки>-<Название платформы>, таким образом вы сможете довольно легко ориентироваться в сборках только по названию

Branch — ветка в системе контроля версий с которой будет происходить сборка

Project subfolder path — если ваш проект находится не в корневой директории, то тут нужно указать путь к вашему Unity проекту. В моем случае проекте находится в корне репозитория, поэтому это поле оставляем пустым

Unity version — можно выставить галочку Auto detect Unity version тогда Unity будет автоматически определять версию и создавать сборку с помощью нее.
Мы в проектах редко меняем версию Unity и при этом я пару раз сталкивался с тем, что эта галочка отрабатывала не правильно и билды из-за этого ломались. Поэтому я предпочитаю задавать версию вручную и быть уверенным, что никакой магии ломающей сборки не произойдет

Builder Operating System and Version — Версия операционной системы. Я рекомендую всегда использовать самый дешевый вариант на Windows платформе, если сборка идет под продукты Apple, тогда выбора нет и нужно использовать MacOS.

Xcode version — версия Xcode, если сборка под Apple

Unity Editor architecture — целевая архитектура процессора при сборках под Apple

Шаг 15. Настраиваем Builder configuration

Настройка Builder configuration

Настройка Builder configuration

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

Мы как-то проводили эксперимент, сравнивая дорогие и бюджетные билд-агенты, и выяснили, что разница во времени сборки была незначительной, а вот в цене — весьма ощутимой. 

Шаг 16. Настройка Scheduling

Настройка Scheduling

Настройка Scheduling

Auto-build: automatically start builds when your repository is updated — Если вы хотите, что бы любой коммит запускал билд, тогда стоит поставить ее в true

Auto-cancel: automatically cancel previously pending builds when any new build is triggered — Отменить прошлую сборку, если запустилась новая сборка

Configure a repeating build schedule — запускать сборки раз в определенное время

Тут у меня нет каких-то персональных рекомендаций и настройка зависит от вашего процесса поставки релизов. В рамках демо проекта мы оставим их все в False а запуск билда будем проводить вручную

Шаг 17. Сохраняем конфигурацию

Если вы все сделали правильно, то у вас должна появится такая строчка

Созданная конфигурация в списке configurations

Созданная конфигурация в списке configurations

Шаг 18. Запустить сборку

Запуск сборки

Запуск сборки

Шаг 19. Проверим, что наша сборка запустилась

Перейдем во вкладку build history и мы должны увидеть, что наш билд запустился

Убедились, что билд запущен

Убедились, что билд запущен

Ну а пока мы ждем сборку можно зайти на мой телеграмм канал и почитать очень полезные посты о разработке и прохождении интервью — будет полезно!

Шаг 20. Запускаем сборку

Убедились, что проект запустился

Убедились, что проект запустился

Читатель, спасибо, что дочитал до конца первую часть статьи про CI/CD в Unity!

В следующей части я расскажу как автоматизировать deploy WebGL через Team City.
А если вам понравилась эта статья, то поддержите меня лайком!


ссылка на оригинал статьи https://habr.com/ru/articles/891160/