Использование GitVersion для создания тега изображения Docker - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь выяснить, как использовать GitVersion для генерации идентификатора сборки, совместимого с Docker, по умолчанию gitversion использует что-то вроде этого:

0.1.0-branchname.1+380

, но + нельзя использовать в имени тега изображения. Единственная разумная вещь, которую я нашел в документации GitVersion - это переменная NuGetVersionV2, которая, кажется, заменяет + на -, но я хотел бы знать, как лучше контролировать, как gitversion генерирует "смещение" "для коммитов

1 Ответ

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

Для Задача GitVersion , основанная на результатах теста, подсчитывает все коммиты текущей ветки, а не базируется на предыдущей сборке или кэше, независимо от использования агента Microsoft-Hosted или Self-hosted agent.

Задача GitVersion экспортирует другие переменные, поэтому я предлагаю вам использовать другие переменные в качестве тега изображения докера вместо BuildId.

##[debug]Processed: ##vso[task.setvariable variable=GitVersion.Major;]0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.Minor;]1
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.Patch;]0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.PreReleaseTag;]
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.PreReleaseTagWithDash;]
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.PreReleaseLabel;]
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.PreReleaseNumber;]
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.BuildMetaData;]17
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.BuildMetaDataPadded;]0017
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.FullBuildMetaData;]17.Branch.master.Sha.4515221c0e10f3bf3fa4038b9b25e2379080ddf1
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.MajorMinorPatch;]0.1.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.SemVer;]0.1.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.LegacySemVer;]0.1.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.LegacySemVerPadded;]0.1.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.AssemblySemVer;]0.1.0.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.AssemblySemFileVer;]0.1.0.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.FullSemVer;]0.1.0+17
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.InformationalVersion;]0.1.0+17.Branch.master.Sha.4515221c0e10f3bf3fa4038b9b25e2379080ddf1
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.BranchName;]master
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.Sha;]4515221c0e10f3bf3fa4038b9b25e2379080ddf1
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.ShortSha;]4515221
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.NuGetVersionV2;]0.1.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.NuGetVersion;]0.1.0
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.NuGetPreReleaseTagV2;]
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.NuGetPreReleaseTag;]
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.CommitsSinceVersionSource;]17
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.CommitsSinceVersionSourcePadded;]0017
##[debug]Processed: ##vso[task.setvariable variable=GitVersion.CommitDate;]2019-07-10

Вы также можете настроить формат в GitVersion.yml. Например:

mode: ContinuousDelivery
assembly-informational-format: '{SemVer}-{ShortSha}'
branches: {}
ignore:
  sha: []

Затем используйте $ (Gitversion.Informationalversion) (пример данных: 0.1.0-0322edb) в задаче Docker (поле ввода тегов)

enter image description here

...