Есть ли в Azure Devops короткая 7-значная версия $ (SourceVersion)? - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь установить имена наших сборок в формате ...

$(BuildDefinitionName)_$(versionMajor).$(versionMinor).$(versionPatch)+$(SourceBranchName).$(SourceVersion) например OurBigLibraryCI_1.2.3+master.10bbc577

Однако я не нашел ни одной предопределенной переменной, содержащей «короткую» (7-значную) версию хеша коммита. $(SourceVersion) содержит полный хэш SHA-1.

Как можно сократить это в конвейере на основе yaml?

Ответы [ 2 ]

2 голосов
/ 10 июля 2019

вы могли бы использовать gitversion для этого, после запуска задачи gitversion она открыла бы шортшу в переменной $(GitVersion.ShortSha).

с другой стороны шортша - это только первые 7 символовнастоящий ша, так что вы можете просто использовать какой-то сценарий bash \ powershell для разделения длинного ша на короткий ша

В Git, в чем разница между длинным и коротким хэшем?

1 голос
/ 11 июля 2019

Как можно сократить это в конвейере на основе yaml?

Не существует готовой переменной для получения 7 -значной версии $ (SourceVersion) в Azure Devops. Поскольку ShortSha является 8 -значной версией.

Итак, чтобы решить эту проблему, как сказал @ 4c74356b41, мы должны использовать скрипт bash \ powershell для разделения длинного ша на короткое ша.

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

steps:

- script: |
   echo $(Build.SourceVersion)

   set  TestVar=$(Build.SourceVersion)

   set MyCustomVar= %TestVar:~0,7%

   echo %MyCustomVar%

  displayName: 'Command Line Script'

Результат:

========================== Starting Command Output ===========================
##[command]"C:\WINDOWS\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "C:\VS2017Agent\_work\_temp\be5f6293-77d8-41b7-a537-49e3b2e7bc6c.cmd""
cb124539c4cb7f19dc8e50e1b021f93c5ffaf226
cb12453
##[section]Finishing: Command Line Script

Итак, мы можем получить 7-значную версию $ (SourceVersion) cb12453.

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

...