将计划构建添加到构建配置

Adding a scheduled build to the build configuration

我目前正在编写一个脚本来更改构建定义的某些配置。其中一项更改是添加一个触发器,将构建安排在每个工作日的 运行 凌晨 2 点。

我的方法是先手动添加触发器,然后使用 API 调用重现它。配置导致构建定义中出现以下内容:

"triggers": [
    {
        "schedules": [
            {
                "branchFilters": [
                    "+$/<removed>"
                ],
                "timeZoneId": "W. Europe Standard Time",
                "startHours": 2,
                "startMinutes": 0,
                "daysToBuild": 31,
                "scheduleJobId": "f3bf0e7e-8cde-4d91-8e3d-63bf3e29d256",
                "scheduleOnlyWithChanges": true
            }
        ],
        "triggerType": "schedule"
    }
],

我的问题是,当我通过 API 进行此更改时,没有任何更改。

PUT 编辑 JSON 定义到 "${vstsBaseUrl}/build/definitions/${id}?api-version=5.0-preview.4"(PowerShell 脚本)并且仍然收到 200 OK,但我的更改尚未提交。

修订号也没有增加。但是最新版本的构建定义作为响应发送。

没有 "scheduleJobId" 的更新没有帮助。

那是因为您没有指定正确的构建定义 revision,您需要指定 latest revision 来更新定义。

因此,您可以先使用 REST API 获取 build definition revision。然后在您的请求正文中使用该修订来更新构建定义。