【问题标题】:Executing Hudson jobs remotely远程执行 Hudson 作业
【发布时间】:2011-10-11 09:18:51
【问题描述】:

我正在尝试通过远程点击适当的网址来自动化 Hudson。我正在使用 python 的 urllib2 来做同样的事情。

首先,我正在尝试构建一个现有的作业并获取构建状态。

构建的示例 url 如下所示:

http://tomcaturl:8080/hudson/job/.NET%20Build/build

但是这会返回给我 html 数据。

Hudson 文档说我可以获取 python/json/xml 格式的数据,所以我尝试点击

http://tomcaturl:8080/hudson/job/.NET%20Build/build/api/json

但我根本没有得到任何数据,尽管构建成功。

有没有办法找出我的远程构建请求启动了哪个构建,以便我可以维护一对一的映射。

请注意,我是通过远程 python 程序执行此操作的,我无法访问 hudson GUI。

【问题讨论】:

    标签: hudson


    【解决方案1】:

    首先,如果您启用了任何安全/登录,您必须登录到远程 hudson 服务器以获取 /job/JobName/build。如果您允许在不登录的情况下开始构建,这不是问题。

    /job/JobName/build 请求将返回 html 数据。如果您没有登录,您将收到重定向到登录页面的响应,并且构建将不会开始。如果请求成功,您将不会重定向到登录,您可以假设构建已排队。您还可以使用项目的 api url 检查构建队列(见下文)。请注意,在开始构建之前可能会有延迟,您可以通过调用 /job/JobName/build?delay=0sec 来控制它

    job/JobName/build url下没有API,但是可以在这里查看api信息:

    http://tomcaturl:8080/hudson/job/.NET%20Build/api

    如果您将 /api/xml 或 /api/json 附加到 url 的末尾,hudson 中显示信息(关于项目、特定构建等)的大多数页面都有一个 api 页面。 /job/JobName/build 没有 api 页面的原因仅仅是因为它不是信息页面的 url。

    示例 api 请求:

    关于项目信息的xml调用:

    http://tomcaturl:8080/hudson/job/.NET%20Build/api/xml

    json 调用以获取有关项目最后一次成功构建的信息:

    http://tomcaturl:8080/hudson/job/.NET%20Build/lastSucessfulBuild/api/json

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多