在特定提交上触发 Appveyor 构建

Trigger an Appveyor build on particular commit

我需要的是一个命令,它可以使用特定的环境变量在 Appveyor 上开始构建某个提交。从指南中,有:

有什么可以让我同时做到这两点?我可以使用 build worker API 或 REST API(尽管 REST 更可取,所以我可以在任何地方 运行)。

更广泛的上下文是我希望构建启动一个单独的构建,该构建将 运行 同一提交的部署脚本(同一分支不够好 - 分支可能已更新)。它们需要单独构建,因为第一次和第二次构建一起花费的时间对于 Appveyor 的 60 分钟时间限制来说太长了。环境变量用于 "configure" 构建,以便它部署而不是其他东西。

检查此示例(如果您需要我们将超时增加到 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

使用 curl 你可以在下面使用,不需要分支,如果指定它会给出错误。 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}' }"`