Я ищу решение для автоматического увеличения версии пакета (не путать с версией сборки) после каждой сборки на сервере CI (в частности, Atlassian Bamboo). У каждого пакета appx есть версия, определенная в его файле манифеста (appxmanifest). Таким образом, чтобы увеличить версию, перед фиксацией необходимо отредактировать манифест. Я рассматриваю различные подходы к реализации этого. Первый вносит изменения в манифест и отправляет его обратно в репо.
- Начинает строить план (чтобы заблокировать номер сборки)
- Изменяет манифест, чтобы для ревизии был установлен текущий номер сборки.
- Отправляет изменения в SCM (в частности, в Atlassian Stash). Этот шаг не должен запускать следующую сборку.
- Продолжает сборку пакета (вызывает MSBuild, UT и другие задачи)
Минусы
- Приводит к неправильному рабочему процессу на Bamboo: checkout -> push -> build
- Каждая сборка делает новый коммит
Другой подход состоит в том, чтобы настроить хук Stash после получения, который изменит файл appxmanifest.
Минусы Сложно синхронизировать номер сборки с Bamboo.
Есть ли другой (более чистый и правильный) способ добиться этого?