有TeamCity和几个步骤的构建配置。是否可以让任何参数跳过其中一个步骤。那些。有一个存储库,从那里绘制了 2 个分支(master 和 dev)如果 dev 分支中发生了更改,您需要执行 1 个额外的步骤,事实是它不应该Command Line
或PowerShell
(您可以在其中处理一些变量), 但应该是例如 runnerMSBuild
或者SMB Upload
我真的不想因为这个特性而做一个单独的构建配置。
脚本示例
1)master分支的变化:
a) 选择更改并构建项目 (vs.sln) (MSBuilder runner)
b) 将发生的事情部署到 masterServer 服务器(SMB 上传运行器)
2)部署分支的变化:
a) 选择更改并构建项目 (vs.sln) (MSBuilder runner)
b) 将发生的事情部署到 developServer 服务器(SMB 上传运行器)
c) 将发生的事情部署到 homeServer 服务器(SMB 上传运行器)
并使 2 个不同或按分支数量不是很漂亮且难以维护
能够。但最好不同的分支有不同的项目。项目可以模板化。
我有类似情况:dev一直部署,master按需部署,指定主机。当且仅当我亲手指示版本和主机时才部署到生产环境
@andreycha
在包含分支名称的配置中创建一个分支变量。
详情在这里
然后我们创建一个Command Line Build Step,我们在其中编写分支检查条件
所以如果它是一个开发分支,脚本将被执行
更新
我们建议使用这种方法:
配置可以模板化,模板可以用于女仆和主人。Dev,除了模板中描述的步骤外,还有一个额外的部署步骤
您的架构的另一种方法:
创建另一个仅适用于开发人员的配置(可通过分支过滤器配置)。可通过依赖项配置。
感谢@andreycha提醒我步骤分离。
不推荐第三种方法:
您总能找到SMB 上传命令是如何“扩展”的。一如既往,它是一个带有参数的程序。这些设置可以在构建日志中看到。复制。参数化配置,作为命令行执行
TeamCity不支持有条件地执行步骤。因此,您的问题可以通过使用 PS 脚本的自定义步骤或通过单独的配置来解决。在您的情况下,单独的配置是正确的方法(因为您需要单独的 CI/部署构建),在这里我完全支持@SeniorPomidor 的回答。