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

如何在TeamCity中获取制品(.apk)的路径或名称?

从TeamCity获取制品路径/名称的实现方案

方法1:通过构建参数直接传递

在TeamCity的构建配置里,在生成.apk的步骤后新增一个命令行步骤,用脚本提取.apk的路径或名称,再存入TeamCity自定义参数:

  • 以Linux构建机为例,shell脚本示例:
    # 定位最新生成的.apk文件路径
    APK_PATH=$(find /path/to/build/outputs -name "*.apk" -type f | sort -r | head -n 1)
    # 提取文件名
    APK_NAME=$(basename "$APK_PATH")
    # 将值注入TeamCity环境变量,后续脚本可直接读取
    echo "##teamcity[setParameter name='env.APK_PATH' value='$APK_PATH']"
    echo "##teamcity[setParameter name='env.APK_NAME' value='$APK_NAME']"
    
  • 之后你的自定义脚本直接读取$APK_PATH或$APK_NAME环境变量即可,无需重复查找文件。

方法2:用REST API获取制品元数据

既然你了解REST API,可直接调用接口获取制品的名称和相对路径,无需下载:

  • 调用构建制品列表接口:http://<teamcity-server>/app/rest/builds/id:<build-id>/artifacts/children
  • 用curl结合文本过滤快速提取.apk信息,示例:
    # 替换为你的TeamCity地址、构建ID和认证信息
    curl -u 账号:密码 "http://teamcity.example.com/app/rest/builds/id:123/artifacts/children" | grep -oP '(?<=<name>).*\.apk(?=</name>)'
    
    若需要完整相对路径,可解析接口返回的XML/JSON响应(默认XML格式,可通过?fields=*指定返回JSON)。

方法3:从构建日志中提取

如果你的构建步骤已经会输出.apk的生成路径,可通过API拉取构建日志后匹配提取:

curl -u 账号:密码 "http://teamcity.example.com/app/rest/builds/id:123/log" | grep -oP '/.*\.apk'

这种方法适合已有日志输出路径的场景,无需额外新增构建步骤。


内容的提问来源于stack exchange,提问作者Svyatoslav Volkov

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 16:03:11