微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 GitVersion 生成版本号时 Azure DevOps 生成错误

如何解决使用 GitVersion 生成版本号时 Azure DevOps 生成错误

我正在开发 Azure DevOps 发布管道,并希望使用 GitVersion 为我的构建自动生成语义版本号;我已经在 CI 构建中毫无问题地实现了这一点,但是当我对发布管道执行相同的操作时,出现以下错误

pred= model.predict(X_test)

-> dtype('float32')

for i,image in enumerate(pred,1):
    tf.keras.preprocessing.image.save_img(f'output_test/{i}.tif',image,scale=False)

安装和运行 GitVersion 步骤的 YAML 是:

2021-03-31T06:33:24.9941116Z Executing GenerateSetVersionMessage for 'AzurePipelines'.
2021-03-31T06:33:24.9961020Z ##[error]Unable to process command '##vso[build.updatebuildnumber]0.1.0' successfully. Please reference documentation (http://go.microsoft.com/fwlink/?LinkId=817296)
2021-03-31T06:33:24.9979344Z ##[error]Value cannot be null. (Parameter 'buildId')
2021-03-31T06:33:25.0085671Z Executing GenerateBuildlogoutput for 'AzurePipelines'.

发布管道是否支持 GitVersion 任务,还是仅支持构建管道?

解决方法

GitVersion 是一个构建任务,它可能不适用于发布管道。根据您分享的日志,GitVersion 任务将执行“UpdateBuildNumber”命令。

UpdateBuildNumber”命令用于使用您为当前版本指定的新版本号覆盖自动生成的版本号。它仅适用于 CI 构建管道(经典和 YAML)。您不能在构建运行中使用此命令来更新另一个构建的构建编号。并且它也不能用于发布管道。

##vso[build.updatebuildnumber]new-build-number

如果您想使用为当前版本指定的新名称覆盖自动生成的版本名称,可以在发布管道中使用“UpdateReleaseName”命令。此命令的用法类似于“UpdateBuildNumber”。

##vso[release.updatereleasename]new-release-name

要查看更多详细信息,您可以查看“Logging commands”。

[更新]

如果您只想更新发布名称,为什么不直接在发布管道中使用“UpdateReleaseName”命令?

您应该在生成用作发布管道源的工件的构建管道中使用 GitVersion 任务。

在构建管道中执行 GitVersion 任务以生成和更新新构建号后,在使用构建工件作为源的发布管道中,您可以使用 predefined Build variable ' $(Build.BuildNumber)' 获取内部版本号,并使用“UpdateReleaseName”命令使用内部版本号更新版本名称。

例如,您可以添加一个 Bash task 以在发布管道中执行以下命令。

echo "##vso[release.updatereleasename]$(Build.BuildNumber)"

这会将发布名称更新为与关联构建的构建编号相同。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?