我使用TeamCity进行持续集成,使用Octopus Deploy进行持续部署 .
在TeamCity中,我有一个项目,我构建,然后使用Octopus Deploy的OctoPack打包 . 目前定义了三种构建配置:
-
构建,测试,包
-
部署到CI
-
部署到QA
对于第一个配置中的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
步骤中,我需要能够将与 CI
环境中特定 Deploy to 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)
在八达通我会看到以下内容:
Release
|-- 1.0.0.100 CI, QA
|-- 1.0.0.99 CI
|-- 1.0.0.98 CI, QA
如何传递特定版本号以升级到TeamCity中的给定环境?
1 回答
当我进入各种构建配置的构建步骤时,我意识到我可以引用依赖构建配置的属性 .
对于上面的示例,我有以下配置和ID:
在我的
Build, Test Package
构建配置中,我将OctoPack
版本号配置为:然后在部署配置中,我将版本号更改为:
通过这样做,我能够引用先前构建的构建号,以促进从一个环境到另一个环境的正确释放 .