我需要的是一个命令,该命令在Appveyor上使用特定环境变量启动某个提交的构建。在指南中,有:
Start-AppveyorBuild
,它允许您传入环境变量,但仅允许您指定分支,而不是提交。POST /api/builds
中,您可以选择提交哈希,但不能为随后的构建设置任何环境变量。有什么可以让我做到这两项的?我可以使用build worker API或REST API(尽管最好使用REST,以便我可以在任何地方运行它)。
更广泛的上下文是我希望一个构建开始一个单独的构建,该构建将运行具有相同提交的部署脚本(同一分支还不够好-分支可能已更新)。由于第一个版本和第二个版本在一起花费的时间超过了Appveyor的60分钟时间限制,因此它们必须是单独的版本。环境变量用于“配置”构建,以便部署而不是其他构建。
答案 0 :(得分:2)
检查此示例(如果您需要我们将超时时间增加到90分钟,请写信给team at appveyor.com
$token = '<API_Token>'
$headers = @{
"Authorization" = "Bearer $token"
"Content-type" = "application/json"
}
$body = @{
accountName="<Your_account>"
projectSlug="<Your_project_slug>"
branch="<Your_branch>"
commitId="<Your_commit_id>"
}
$body = $body | ConvertTo-Json
Invoke-RestMethod -Uri 'https://ci.appveyor.com/api/builds' -Headers $headers -Body $body -Method POST
答案 1 :(得分:0)
使用卷曲,您可以在下面使用,不需要分支,如果指定,它将给出错误。 Git提交就足够了:
response=`curl -H "Authorization: Bearer ${APPVEYOR_TOKEN}" -H "Content-Type: application/json" https://ci.appveyor.com/api/builds --data-binary "{ accountName: '${accountName}', projectSlug: '${projectName}', commitId: '${commitId}' }"`