我们刚刚开始使用Octopus Deploy。
我们有3个频道
是否有办法让每个频道以不同方式创建其版本号,但是为其号码使用相同的种子?
即。
1.0.1-beta
,1.0.2-beta
,1.0.3-beta
等1.1.0
,1.2.0
,1.3.0
等1.1.1
,1.1.2
,1.1.3
等虽然这对我来说似乎是可取的 - 有没有一种说法不这样做?
答案 0 :(得分:1)
使用部署自动化,您希望在部署之间尽可能保持相同 - 八达通可以帮助实现这一目标。
例如,Octopus将对发布的流程,变量和包进行版本化,以便在发布的整个生命周期内对这些变更不适用。
因此,当您将1.1.0的代码弹出到Octopus时,它会生成版本1.1.0并为该版本的流程和变量创建快照,以便它们与任何更改隔离开来。
如果您上传了代码的1.1.0BETA,那么决定"它是发布的候选者",然后您上传1.1.0,它将是不同的代码,不同的版本和过程和变量的不同快照。然后,您必须从头开始贯穿整个生命周期。如果您已经针对1.1.0 BETA进行了测试,那么它对1.1.0无效 - 因此您不得不重复工作。
开箱即用&#34;开箱即用&#34;方式,您上传1.1.0并将其流入您的QA环境,并将其作为错误版本阻止,或将其作为一个好的版本推广 - 确保一切都是一致的,您只需要做一次。< / p>
您可以管理&#34; BETA&#34;,&#34; RC&#34;和&#34; RTM&#34;以另一种方式(即通过变量替换),你可以保持其他一切相同吗?
答案 1 :(得分:0)
您应该使用构建服务器对软件包进行版本化。(像Jenkins,TFS ..)有许多用于版本控制的插件和格式化模板。特别是Octopus是一种不是版本控制工具的部署工具。
使用Jenkins MSbuild (Jenkins为我构建Octopus部署)
2016.3.25.1的修复程序
$ {BUILD_YEAR} $ {BUILD_MONTH} $ {BUILD_DAY} $ {BUILDS_TODAY} -branchname
使用TFS Build 打开TFS构建定义进程,打开高级并检查“构建数字格式”您应该使用它。
$(日期:yy.MMdd.HH.mm)
答案 2 :(得分:0)
“是否有这样的论点?” 是的。您希望八达通强制将哪个版本与哪个通道一起使用。使用基于版本范围和SemVer标签的版本控制规则来控制章鱼频道。您的两个渠道用SemVer术语是无法区分的,因此需要更改软件包版本号格式,以使渠道版本规则可以正常工作。在此基础上,实现所需的功能将意味着发行版本号与软件包版本号不符(嗯,如果您从软件包的版本号中得出发行号,这对我来说一直是明智的选择,那么,避免在两个地方管理版本号,并且我假设您同意发布1.2.3
包含相同版本号的软件包是明智的。但是,通过对发行版本号进行轻微优惠,您可以接近想要的...
您的 Beta 频道很好,没问题:在该频道的版本规则上提供beta
的预发布标签。但是问题是要区分这两个:
1.1.0
,1.2.0
,1.3.0
等1.1.1
,1.1.2
,1.1.3
等遗憾的是,无法基于整个版本号创建规则(例如,使用正则表达式:\.0$
)。出于与您完全相同的原因,我们本来希望完全符合该规则。因此,除非您愿意为每个以.0
结尾的可能的版本手动添加一个版本规则(我假设不是...),否则我们必须做出一点让步才能适应章鱼想要的内容。 / p>
您需要选择这两个渠道之一,以同时拥有SemVer预发布标签,就像 Beta 一样。假设我们在 Hotfix 版本中添加了-hotfix
后缀。然后,您需要为Hotfix通道设置版本规则,以将hotfix
作为预发布标签。并且必须更改 Stable 频道,使其版本规则为^$
(表示没有标签),以防止该频道使用的其他频道发布内容。
以上内容为您提供了所需的内容,并稍作让步,所有 Hotfix 版本均带有-hotfix
后缀。如果版本号不是beta,并且不以.0
结尾,那么很容易获得自动生成的版本来决定在创建软件包时添加该后缀。