首页 文章

在TeamCity中升级特定的OctopusDeploy版本

提问于
浏览
2

我使用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 回答

  • 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%
    

    通过这样做,我能够引用先前构建的构建号,以促进从一个环境到另一个环境的正确释放 .

相关问题