我正在使用TeamCity进行持续集成,并使用Octopus Deploy进行持续部署。
在TeamCity中,我有一个项目,我构建,然后使用Octopus Deploy OctoPack打包。目前定义了三种构建配置:
对于第一个配置中的OctoPack配置,包版本通过内部版本号生成:
OctoPack package version: 1.0.0.%build.number%
如果Build, Test, Package
成功构建,则部署到CI然后启动Octopus Deploy版本。 Octopus Deploy在创建发布时使用NuGet版本号作为发行版本号。因此对于构建#400,我有一个My.Project.1.0.0.400.nupkg
NuGet包,它以版本1.0.0.400
发布。
在Deploy to QA
步骤中,我需要能够将与Deploy to CI
环境中特定CI
版本相关联的版本推广到我的QA
环境。
本质上,我希望能够拥有这种依赖树:
Build, Test, Package
|-- #401 SUCCESS
|-- #400 FAILURE
|-- #399 FAILURE
|-- #398 SUCCESS
/ #391-397 FAILURE
|-- #390 SUCCESS
Deploy to CI
|-- #100 SUCCESS (Depends Build, Test, Package #401)
|-- #99 SUCCESS (Depends Build, Test, Package #398)
|-- #98 SUCCESS (Depends Build, Test, Package #390)
Deploy to QA
|-- #10 SUCCESS (Depends Deploy to CI #100)
|-- #9 SUCCESS (Depends Deploy to CI #98)
在Octopus,我会看到以下内容:
Release
|-- 1.0.0.100 CI, QA
|-- 1.0.0.99 CI
|-- 1.0.0.98 CI, QA
如何传递特定版本号以升级到TeamCity中的给定环境?
答案 0 :(得分:3)
当我进入各种构建配置的构建步骤时,我意识到我可以引用依赖构建配置的属性。
对于上面的示例,我有以下配置和ID:
Build, Test, Package - btp1
Deploy to CI - dtc1
Deploy to QA - dtq1
在我的Build, Test Package
版本配置中,我将OctoPack
版本号配置为:
%MajorVersion%.%MinorVersion%.%build.vcs.number%.%build.number%
然后在部署配置中,我将版本号更改为:
Deploy to CI - %MajorVersion%.%MinorVersion%.%dep.btp1.build.vcs.number%.%dep.btp1.build.number%
Deploy to QA - %MajorVersion%.%MinorVersion%.%dep.btp1.build.vcs.number%.%dep.btp1.build.number%
通过这样做,我能够引用先前构建的构建号,以促进从一个环境到另一个环境的正确释放。