Дженкинс - как установить номер версии сборки на основе версии сборки?

Многие вопросы в Stackru или других блогах показывают, как использовать номер сборки Jenkins и плагин изменения версии сборки для установки AssemblyVersion в файле AssemblyInfo.cs.

Но я пытаюсь сделать наоборот - установить версию сборки jenkins на версию из AssemblyInfo.cs? Очевидно, я бы сделал это ПОСЛЕ того, как исходный код был снесен.

Почему я хочу это сделать? Причина: я хотел бы синхронизировать следующие четыре "компонента"

  1. Мой AssemblyInfo.cs, например, [assembly: AssemblyVersion("2.10.*")] - мой "источник правды" для управления версиями major.minor.

  2. Во время сборки я бы обновил версию до, например, 2.10.73, где 73 от ${BUILDS_ALL_TIME}

  3. Мы публикуем наш код на нашем внутреннем сервере Nuget, поэтому я бы хотел, чтобы версия пакета Nuget была, например, 2.10.73.

  4. Я планирую пометить / пометить наш источник контроля названием Jenkins Build

  5. Поэтому я бы хотел, чтобы имя моей сборки jenkins было, например, MyProject.2.10.73

Я могу это сделать? А именно, я бы хотел, чтобы версия major.minor была установлена ​​в моем AssemblyInfo.cs, который находится в управлении исходным кодом.

Спасибо!

1 ответ

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

Я в конечном итоге 1) Использование плагина EnvInject (в качестве действия сборки)

https://wiki.jenkins.io/display/JENKINS/EnvInject+Plugin

2) Написал свой собственный скрипт PowerShell, чтобы прочитать мой файл AssemblyInfo.cs и вывести свойства моей среды, см. Этот пост

https://i-script-stuff.electric-horizons.com/environment-inject-variable-with-powershell-and-jenkins/

3) Использовал плагин Build Name Setter, чтобы затем изменить имя после сборки

https://wiki.jenkins.io/display/JENKINS/Build+Name+Setter+Plugin

Другие вопросы по тегам