在 VSTS 中使用 git tag 或 package.json 版本作为 Release 名称

Posted

技术标签:

【中文标题】在 VSTS 中使用 git tag 或 package.json 版本作为 Release 名称【英文标题】:Use git tag or package.json version as Release name in VSTS 【发布时间】:2018-11-02 22:50:57 【问题描述】:

我在 VSTS 中有一个用于自动构建和测试的 CI 任务,以及一个用于“带有标签的构建定义默认分支的最新版本”的自动发布定义。

版本名称格式当前设置为默认值 $(rev:r),它只是设置一个与任何真实版本无关的递增数字。

当我更新包版本时,我更喜欢使用我的应用程序版本作为来自 package.json 或由 yarn 创建的 git 标记的发布名称。有什么方法可以实现吗?

【问题讨论】:

【参考方案1】:

你不能直接使用 git tag 或 package.json 版本作为发布名称,因为只有 part of predefined variables can be used for release name,并且变量在构建和发布之间不能持久。

但是您可以使用 group variable 获得帮助:在 CI 构建结束时使用 git tag 或 package.json 版本更新 group 变量值,并使用 group 变量作为发布名称。详细步骤如下:

    添加变量组

    在构建和发布中心 -> 库选项卡 -> 添加具有任意初始值(例如 0)的变量(例如 tag)的变量组(例如 release name)。

    在 CI 构建中更改组变量

    您可以添加一个 PowerShell 任务以使用 git 标记或 package.json 版本更改组变量。

    要获取标签名,可以使用git命令git tag --points-at HEAD。 要获取package.json版本,可以使用powershell脚本搜索"version"等开头的行 要更新组变量,您应该使用 REST API Variablegroups - Update。

    在发布中使用组变量

    要在发布名称中应用 git 标签或 package.json 版本,您可以更改发布定义,如下所示:

    版本定义 -> 变量选项卡 -> 变量组 -> 链接变量组 -> 选择变量组 -> 选项选项卡 -> 指定以修订为版本名称的组变量标签。

现在当发布被触发时,它将使用 git 标签或带有修订版本的 package.json 版本作为发布名称。

【讨论】:

以上是关于在 VSTS 中使用 git tag 或 package.json 版本作为 Release 名称的主要内容,如果未能解决你的问题,请参考以下文章

解决eclipse中egit中的cannot open git-upload-pack问题

从在线 VSTS 进程或组变量填充本地 VSTS Linux 代理上的 terraform.tfvars 文件中的变量

解决eclipse中egit中的cannot open git-upload-pack问题

VSTS中版本控制系统Git与TFVC的区别

节点模块在我的 VSTS 的 Git 项目中不可见

VSTS Build在git commit上排队两次