Teamcity 9: как добавить git короткий хэш в сборку info patcher

Я пытаюсь использовать ассемблерный патчер для создания номера версии, например:

1.2.3.1a3c19e

где последний бит - короткий хэш git.

Я попытался использовать шаг сборки powershell script для создания короткого хэша (поскольку я не могу найти переменную, имеющую его) и добавляя его к системной переменной, но этот шаг сборки появляется после сборки патчера ассемблера, так что это не очень полезно.

Ответы

Ответ 1

Если вы хотите записать это в поле Информация о сборке, это может быть сделано, но для создания номера сборки требуется отдельная конфигурация сборки. Единственная цель этого шага - создать номер сборки, к которому добавлен хеш.

1. Создайте конфигурацию сборки для генерации короткого хэша

Build Config

2. Добавьте шаг для создания хэша

Build Config

3. Добавьте параметр для хранения хэша

Param

4. Добавьте вторую конфигурацию сборки и добавьте зависимость к первой.

Dependency

5. Теперь вы можете использовать параметр на зависимом шаге

Consume

6. На этом этапе вы можете использовать его в патчере информации о сборке

Patcher

Альтернативой этому является запись вашего номера сборки обратно в Git с помощью функции сборки меток VCS.

Labeling

Надеюсь, что это поможет.

Ответ 2

Если вы имеете в виду сборку .NET, вы не сможете использовать короткий хэш git как номер версии только потому, что он принимает только числа. Вы можете проверить это самостоятельно и поставить версию выше в AssemblyVersion. Бьюсь об заклад, ваше приложение не будет скомпилировано. Вместо этого вы можете использовать% build.counter% variable от teamcity в качестве номера версии.