首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用GitVersion生成Docker图像标记

使用GitVersion生成Docker图像标记
EN

Stack Overflow用户
提问于 2019-07-09 09:29:33
回答 2查看 2.3K关注 0票数 2

我试图找出如何使用GitVersion生成与docker兼容的构建id,默认情况下,gitversion使用如下所示:

代码语言:javascript
复制
0.1.0-branchname.1+380

但是+不能在图像标记名中使用。我在GitVersion文档中找到的唯一合理的东西是NuGetVersionV2变量,它似乎用-替换了+,但我想知道如何更好地控制gitversion如何为提交生成“偏移”

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-07-10 07:15:54

对于GitVersion任务,根据测试结果,它计算当前分支的所有提交,而不是基于以前的构建或缓存,而不管使用的是微软托管的代理还是自托管代理。

GitVersion任务导出其他变量,因此我建议您可以使用其他变量作为对接者图像标记,而不是BuildId。

代码语言:javascript
复制
##[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自定义格式。例如:

代码语言:javascript
复制
mode: ContinuousDelivery
assembly-informational-format: '{SemVer}-{ShortSha}'
branches: {}
ignore:
  sha: []

然后,在Docker任务中使用$(Gitversion.Informationalversion) (示例数据:0.1.0-0322edb)(标记输入框)

票数 3
EN

Stack Overflow用户

发布于 2019-09-04 04:51:45

以下是我最后所做的:

代码语言:javascript
复制
mode: ContinuousDeployment
assembly-informational-format: '{Major}.{Minor}.{Patch}-{PreReleaseLabel}-{ShortSha}'
branches: {}
ignore:
  sha: []

与此相结合:

代码语言:javascript
复制
- pwsh: Write-Host "##vso[build.updatebuildnumber]${env:GITVERSION_INFORMATIONALVERSION}"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56949480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档