TeamCity:如何将远程文件复制到构建代理以发布为构建产物
解决方案:TeamCity通过SSH拉取远程构建产物到代理本地
TeamCity完全支持通过SSH方式让构建代理拉取远程文件到构建目录,下面是几种实用的实现方式:
方式一:用SSH Exec步骤执行scp命令拉取
在现有远程构建的SSH Exec步骤之后,新增一个SSH Exec构建步骤(注意将"执行位置"选为"代理"),通过scp从远程服务器拉取exe文件到构建工作目录:
scp your-remote-user@remote-server-ip:/full/path/to/built/file.exe %teamcity.build.workingDir%/
其中%teamcity.build.workingDir%是TeamCity内置参数,指向当前构建的工作目录,确保文件被拉到正确位置。
方式二:使用SSH Upload/Download插件(可视化配置)
TeamCity官方提供了SSH Upload/Download插件,安装后可直接添加SSH Download构建步骤,无需手动编写命令:
- 配置远程服务器的SSH连接信息(IP、端口、用户名/密钥)
- 指定远程服务器上exe文件的完整路径
- 设置本地目标路径为
%teamcity.build.workingDir%(即构建工作目录)
方式三:远程构建完成后主动推送文件到代理(可选)
如果远程服务器能访问到构建代理的网络,也可以在远程构建的SSH Exec步骤末尾添加推送命令,直接将exe文件传到代理的工作目录:
scp /path/to/built/file.exe your-agent-user@agent-ip:%teamcity.build.workingDir%/
关键后续配置
无论采用哪种方式,拉取/推送完成后,需在TeamCity的构建配置 -> 通用设置 -> 构建产物中添加该exe文件的相对路径(如file.exe),TeamCity才会将其识别为构建产物并发布。
内容的提问来源于stack exchange,提问作者Whitewind617
相关产品推荐
相关产品推荐

