VSTS/ версия пакета автоматического увеличения Devure для Devops
Выполнение основной задачи.Net для упаковки. Как я могу получить выведенную версию пакета nuget для самого Авто Приращения, в формате скажем:
1.0.0
Поэтому в следующий раз, когда я упаковываю / толкаю, я бы хотел увидеть 1.0.1
Я использую переменные сборки среды с Build.BuildNumber и получаю выходные данные в момент:
20180913-.2.0 и т. Д. Хотелось бы исправить более традиционную систему управления версиями
Спасибо.
5 ответов
Может быть, я понял это.
Для тех, кто рвет на себе волосы, попробуйте это:
Упаковать задачу:
Автоматическое управление версиями пакетов: использование переменной среды
Переменная окружения: Build.BuildNumber
Затем в верхнем меню, где у вас есть Задачи / Переменные / Триггеры / Параметры, нажмите Параметры.
Формат номера сборки: 1,0$(Rev:.r)
Сохранить и поставить в очередь. (будет производить 1.0.1)
Наслаждайтесь!
Поправьте меня, если я ошибаюсь, или если это не работает в течение длительного времени.
Из документов, переменная Rev:.r
ежедневный счетчик изменений Принятое "решение" приведет к тому, что однажды закончится с версией 1.0.12
то на следующий день будет 1.0.1
,
Если вы хотите простой инкрементальный и уникальный семвер, используйте 1.0.$(BuildID)
,
$(BuildID)
является внутренним неизменным счетчиком для ваших сборок, и, следовательно, намного чище, чем $(BuildNumber)
,
Обновить
BuildID всегда будет увеличиваться - нет сброса. Таким образом, после небольшого удара, вы бы в конечном итоге сказать 1.2.123
становление 1.3.124
,
Если вы хотите хорошо выполнить эту задачу, это можно сделать, используя версию npm или аналогичную, например, pubspec_version для сборок Dart или Flutter.
- script: npm version $RELEASE_TYPE
где $RELEASE_TYPE
переменная, которую вы можете установить на основе сборки (то есть: CI, PR и т. д.), имеющая значение major
, minor
, patch
, prerelease
и т.п.
- script: npm version $RELEASE_TYPE
condition: startsWith(variables['build.sourceBranch'], 'refs/head/release/')
env:
releaseType: minor
Если вы просто хотите увеличить номер основной, дополнительной или исправленной версии, используйте counter
оператор в переменной - простой и элегантный подход. Он автоматически добавит единицу к текущему значению.
Вот что я использую:
variables:
major: '1'
minor: '0'
revision: $[counter(variables['minor'], 1)] #this will get reset when minor gets bumped. The number after Counter is the seed number (in my case, I started at 1).
app_version: '$(major).$(minor).$(revision)'
Если вы хотите увидеть реальный конвейер из 4 заданий, который использует это, у меня есть один здесь https://github.com/LanceMcCarthy/DevReachCompanion/blob/master/azure-pipelines.yml
Для меня достаточно установить формат номера сборки на вкладке Параметры на
$(date:yyyy).$(date:MMdd)$(rev:.r)
и добавьте следующий аргумент сборки:
/p:Version=1.$(Build.BuildNumber) /p:AssemblyVersion=1.$(Build.BuildNumber)
В этом случае мы управляем основной версией вручную, но дополнительная версия и номер сборки будут установлены автоматически. Легко понять, какую версию вы развернули.
Я использую конвейер ado и сборку yaml. Я использовал переменные конвейера, функцию счетчика и встроенную функцию PowerShell для создания номера версии. Он автоматически увеличивается и делает весь процесс сборки приятным.