通过ajax使用远程API触发参数化作业构建

时间:2011-05-21 14:16:13

标签: ajax api build jenkins

我正在使用Jenkins ver。 1.406并且无法使用AJAX触发参数化(3个字符串)构建。

有些文档谈论“令牌”,但在Jenkin的OR工作配置面板中没有这样的选项。

我正在发送这样的ajax调用:

    var jqxhr = $.post(
    "http://servername:8080/job/jab-name/build/api/json",
    { "parameters": [{ "PARAM1": "value1" }, { "PARAM2": "value2" }] }, 
    "json"
)
.success(function () { alert("success"); })
.error(function (xhr, ajaxOptions, thrownError) { alert("Error\nxhr.status = [" + xhr.status + "]\n xhr.status: [" + xhr.statusText + "]\najaxOptions = [" + ajaxOptions + "]"); })
.complete(function () { alert("complete"); });

参数正确(区分大小写)并且所有参数都已设置,而不是使用默认值。

任何人都可以提供帮助? 谢谢!

2 个答案:

答案 0 :(得分:4)

要检查的一些事项

  1. 您是否选中了“远程触发构建(例如,从脚本)”选项?如果选中,则会出现输入令牌的文本框。

  2. 你使用安全吗?如果是,则必须对Jenkins进行身份验证。

  3. 查看https://wiki.jenkins-ci.org/display/JENKINS/Remote+access+API(需要使用json触发参数化构建的语句是错误的)

答案 1 :(得分:2)

我认为您必须在网址中将build替换为buildWithParameters

var jqxhr = $.post(
    "http://servername:8080/job/jab-name/buildWithParameters/api/json",
    { "parameters": [{ "PARAM1": "value1" }, { "PARAM2": "value2" }] }, 
    "json"
)
.success(function () { alert("success"); })
.error(function (xhr, ajaxOptions, thrownError) { alert("Error\nxhr.status = [" + xhr.status + "]\n xhr.status: [" + xhr.statusText + "]\najaxOptions = [" + ajaxOptions + "]"); })
.complete(function () { alert("complete"); });