2016-12-29 5 views
2

Мы обновили с TFS 2013 до TFS 2017. Одна из возможностей, которую мы пытаемся реализовать, в 2013 году была возможность иметь пользовательский номер сборки. в предыдущем методе у нас был файл с именем BuildVersion.XML, который на первом этапе сборки прочитал основную, второстепенную и ревизию и назовет сборку с этим номером сборки + 1 в ревизии. Затем он изменит код проверки и обновит номер ревизии и проверит новую версию. Я знаю, что есть шаги, когда люди обновляют AssemblyInfo. Проблема в том, что не весь наш код - это .net-приложения. теперь у нас также есть пакеты SSIS, приложения iOS/android Кордовы, угловые сайты, aws-функции лямбда с node.js, которые не имеют концепции AssemblyInfo. есть ли простой способ реализовать это?TFS 2017 Build Numbering

ответ

2

Вы ван сделать то же самое в Team Build в TFS 2017.

Вы можете обновить номер сборки из любой задачи по телефону:

'' 'Write-Verbose -Verbose «## всо [build.updatebuildnumber] 1.2.3.4 "

Добавьте задачу PowerShell и добавьте встроенный скрипт для чтения из вашего файла и обновите номер сборки указанным выше.

После этого вы можете иметь дополнительные скрипты, которые используют номер сборки любым способом, необходимым для версии вашего приложения.

Вы можете увидеть полный список протоколирования команд здесь https://github.com/Microsoft/vso-agent-tasks/blob/master/docs/authoring/commands.md

+0

нормально, поэтому запись этой команды будет обновлять номер сборки сборки? '' 'Write-Verbose -Verbose' ## vso [build.updatebuildnumber] 1.2.3.4 ". но затем я хочу увеличить число и проверить файл, обновить значение и снова проверить его. – greektreat

+0

@greektreat Вы можете выполнить все эти шаги внутри сценария PowerShell, а затем вызвать build.updatebuildnumber из этого же скрипта. – JamesQMurphy

1

Вы можете использовать мой VSTS TFVC tasks взаимодействовать с контролем источника, хотя я не рекомендую. Я построил эти задачи для моих клиентов, которые делали именно то, что вы делаете.

Вместо того, чтобы полагаться на файл в исходном элементе управления, было бы гораздо лучшим решением передать BuildNumber из определения сборки вместе с сборкой, попросите один из первых шагов обновить файлы на диске с правильным номером версии, затем запустите свою сборку.

Если вы манипулируете файлами во время сборки и проверяете их, вы рискуете несовместимой нумерацией при масштабировании до нескольких агентов сборки, это сложно использовать в сочетании с параллельными сборками и встроенным переменным мультиплексированием, и, как известно, сделайте Gated Checkins и Shelveset. Кроме того, он ограничивает ваши возможности перехода на Git в будущем.

+0

мы не сможем пройти в строках. у нас есть много разработчиков (50+), работающих во многих системах, нам это нужно полностью автоматизировать. У меня была другая мысль: возможно ли обновить мою переменную build автоматически? Я создаю переменную Build.minor = 1, когда я делаю сборку uppon success, обновляю ее до 2 для следующей сборки? – greektreat

+0

Число разработчиков на самом деле не влияет ... И число систем тоже не ... Вы можете использовать остальные api для запроса предыдущего номера сборки и игры с ним с помощью powershell. Затем используйте магическую строку, предоставленную mrhinsh, чтобы записать новый номер. Вы все равно столкнетесь с проблемами с параллельными сборками, стробированными сборками, сборками на полках и т. Д. – jessehouwing