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 для создания номера версии. Он автоматически увеличивается и делает весь процесс сборки приятным.

Еще один ТАК Пост о чем-то подобном