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

Azure devops Octopus部署版本名称semver检查

如何解决Azure devops Octopus部署版本名称semver检查

我们正在将Azure Devops与Octopus部署一起使用。 我已经集成了发行步骤,并且发行发行以及发行到第一个环境(就我而言的开发)都没有问题。

问题随后续版本一起发布。 在发布名称的语义版本检查中,发布失败。

'1.2.1023.0508-09'不是有效的版本字符串

在Octopus.Client.Model.SemanticVersion.Parse中

(字符串值,布尔值 reserveMissingComponents)

在第一阶段,我将创建八达通发布,并在同一任务中部署到开发环境(使用Azure devops中的“创建八达通发布”任务)

create-release "--project=<projectName>" "--releaseNumber=1.2.1023.0508-09" "--server=<serverName>" "--apiKey=***" --enableServiceMessages "--deployTo=Development" --progress "--releaseNotesFile=<path>"

此步骤成功。 在下一阶段,我尝试了2种变体,

  • 促进发布

促销发行版“ --project = projectName”“ --server = serverName” “ --apiKey = ***”“ --from =开发”“ --to = envName”

  • 部署版本

部署发布“ --project = projectName”“ --releaseNumber = latest” “ --server = serverName”“ --apiKey = ***”“ --deployTo = envName”

他们两个都给出了相同的错误,说发行名称不是有效的版本字符串。

我的困惑是,如果名称不正确,即使是第一次部署也应该失败。 如果正确并允许,那么后续阶段的发布也应该会成功。

如果任何人以前曾经遇到过这样的问题,或者可以添加一些指针来解决此问题,这将非常有帮助。

解决方法

这听起来像是个错误,但我需要更多时间来重现和验证。可以共享您使用的八达通和八达通扩展程序的版本吗?

我最好的建议是将发布编号基于Azure DevOps内部版本号,并使用该变量来控制要部署的版本。如果您在阶段之间创建了其他版本,则使用“最新”版本可能适得其反。

如果您可以将Azure DevOps内部版本号设置为与您的Octopus版本号(1.2.1023.0508-09)相同的格式,则可以使用以下命令来构建和升级版本。

create-release "--project=<projectName>" "--releaseNumber=$(Build.BuildNumber)" "--server=<serverName>" "--apiKey=***" --enableServiceMessages "--deployTo=Development" --progress "--releaseNotesFile=<path>"

deploy-release "--project=projectName" "--releaseNumber=$(Build.BuildNumber)" "--server=serverName" "--apiKey=***" "--deployTo=envName"

这将确保您正在推广与管道中创建的相同版本。

,

以防万一有人来这里寻求解决方案,以下是我为解决问题而采取的步骤,

  • 对于第一阶段(在我的情况下为dev),创建一个新版本。如果您有多个租户,请添加他们。不要忘记添加软件包版本。当您创建了多个版本的工件时,这尤其需要。我很难解决这个问题。如果不添加PackageVersion,则会选择最新的可用工件。
  • 在以后的阶段,请勿促进发布。而是,部署发布。这样,您可以传递与第一阶段配置相同的发行版号。就我而言,我将阶段名称与环境名称保持相同。因此,我也能够将变量用于env。我将此阶段复制到了4种不同的环境中。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 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”。这是什么意思?