VCS根不可用时能否使用已检出缓存运行TeamCity构建?
TeamCity Bitbucket离线可用配置方案
直接复用服务器已检出文件的实现方法
你要的回退逻辑是可直接配置实现的,不需要调整现有检出模式,也不需要修改未勾选Clean build的现有配置,操作步骤如下:
- 进入对应构建配置的「版本控制设置」页面,找到对应VCS根的高级设置项,选择当无法连接到VCS时,使用最近同步成功的源码启动构建(不同TeamCity版本选项文字略有差异,核心是允许VCS离线时用本地缓存),开启后遇到
Bitbucket is currently unavailable报错时不会直接终止构建,会直接调用服务器上已缓存的最新检出文件执行任务。 - 如果你绑定了多个VCS根(比如公共函数仓库和业务仓库拆分的场景),需要给每个VCS根都单独开启上述离线可用配置,避免单个仓库连接失败导致整个构建报错。
- 确认TeamCity服务器没有开启全局定时清理VCS缓存的任务,默认情况下服务器端检出的文件会存放在
system/caches/git/下对应仓库的哈希目录中,只要未被手动清理,长期离线状态下也可以正常调用。
可选补充配置
如果你的团队日常运维任务对可用性要求很高,可以额外配置备用方案:
- 单独新增一个维护时段专用的构建配置,移除所有VCS根绑定,直接写死调用服务器上固定缓存目录的已有文件执行构建逻辑,Bitbucket维护时段可以直接触发该配置运行,不会受VCS连接状态影响。
- 长期场景可以在TeamCity服务器本地搭建Git镜像服务,定期同步Bitbucket的所有相关仓库,把构建的VCS源切换到本地镜像,完全规避Bitbucket维护时段的不可用问题。
内容的提问来源于stack exchange,提问作者Ayunema
相关产品推荐
相关产品推荐

