| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /k/ |
触发构建。name 须匹配 ^[a-z0-9][a-z0-9._-]{0,63}$;body 为含 android/ 的源码 tar.gz |
| GET | /k/ |
触发器状态 {"ok":true,"busy":false} |
| GET | /api/builds |
构建产物列表(本页数据源,无需钥匙) |
| GET | /api/status |
触发器状态代理(本服务 → 触发器) |
源码包:Content-Type: application/gzip,body 为含 android/ 的项目根 tar.gz。
curl -X POST -H "Content-Type: application/gzip" \ --data-binary @app.tar.gz \ "https://apps.fangna.tech/k/KEY/build?name=demoapp"
客户端脚本(打包 + 上传 + 解析一步到位):
powershell -File tools\remote_build.ps1 -Http "https://apps.fangna.tech/k/KEY/build" powershell -File tools\remote_build.ps1 -Http "https://apps.fangna.tech/k/KEY/build" -Download
{
"ok": true,
"apk_url": "https://webcmd.fangna.tech/download/builds/demoapp-android-0.1.0-20261009093534.apk",
"apk_name": "demoapp-android-0.1.0-20261009093534.apk",
"apk_sha256": "f387a1ef…",
"apk_size": "27076",
"elapsed": 18.3,
"log": "…gradle 输出末尾 40 行…"
}
| 码 | 含义 |
|---|---|
| 200 | 构建成功,返回 apk_url |
| 400 | name 不合法 / body 截断 / 误用 JSON(git 模式已移除) |
| 404 | 钥匙或路径错(外部探测的唯一响应) |
| 409 | 已有构建在跑(单实例,避免撑爆内存) |
| 411 | 缺 Content-Length |
| 413 | body 超 512MB |
| 502 | 构建失败,log 带构建机报错 |
| 504 | 构建超 900s 被终止 |