You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在UDeploy中从自定义URL拉取制品版本

解决UDeploy中通过HTTP URL拉取TeamCity制品的问题

Hey there! 作为UDeploy新手碰到这个问题太正常了——确实UDeploy默认的Source Configuration Type里没直接给「简单HTTP下载」的选项,但结合你用TeamCity的场景,有两个实用的方案能搞定这个需求:

方案1:调整TeamCity源的URL构造逻辑

你提到UDeploy已经在调用TeamCity的GET API,但生成的URL不符合预期?那可以直接在UDeploy的TeamCity源配置里自定义工件路径来修正:

  • 先在UDeploy中创建一个TeamCity类型的Source Configuration
  • 跳过默认的工件路径选择,直接在「Artifact Path」字段里填写能让UDeploy生成你想要的API URL的内容。比如TeamCity的制品下载API格式一般是http://<teamcity-server>/repository/download/<buildType>/<buildId>:id/<artifact-path>,你可以在这里填入完整的相对路径,甚至用UDeploy的动态属性(比如%latest.build.id%)来自动替换最新构建ID,实现拉取最新版本的需求。
  • 别忘了配置TeamCity的认证信息(用户名+令牌/密码),UDeploy会自动把这些信息加入到API请求的认证头里。

方案2:用脚本源实现完全自定义的HTTP下载

如果上面的方法还是满足不了,或者你就想纯粹用自定义HTTP URL来下载,那可以用UDeploy的Script类型Source Configuration:

  • 选择Source Configuration Type为「Script」
  • 编写一个简单的脚本(bash或批处理,取决于UDeploy服务器的系统),用curl或wget调用TeamCity的API下载制品。举个bash的例子:
# 用UDeploy安全属性存储认证信息,避免硬编码
AUTH_CRED="%teamcity.username%:%teamcity.token%"
# 替换成你的TeamCity API地址,这里用了获取最新成功构建制品的API
API_URL="http://your-teamcity-server/app/rest/builds/buildType:(id=YourBuildType),status=SUCCESS/artifacts/content/your-artifact.zip"
# 下载到UDeploy临时目录,后续会被识别为源工件
curl -u "$AUTH_CRED" "$API_URL" -o /tmp/latest-artifact.zip
  • 把TeamCity的用户名和令牌存在UDeploy的安全属性里(不要直接写在脚本里!),这样既安全又方便维护。
  • 脚本执行完成后,UDeploy会自动把下载的文件作为本次部署的源工件。

额外注意点

  • 确保UDeploy服务器能访问到TeamCity的API地址,检查防火墙、网络策略是否开放了对应端口
  • TeamCity的API令牌可以在个人设置里生成,比密码更安全,建议用令牌代替密码
  • 如果要拉取最新版本,TeamCity的API支持通过status=SUCCESS和branch=master这类参数过滤,不用手动指定具体构建ID

内容的提问来源于stack exchange,提问作者Manish Bansal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:30:36