【问题标题】:Can't run jenkins job jenkins using ant无法使用 ant 运行 jenkins 作业 jenkins
【发布时间】:2017-03-08 10:44:35
【问题描述】:

我在 jenkins 有一些工作,我需要使用 ant 启动它

ant run

构建.xml

<project name="jenkins-facade" default="run" basedir=".">
  <taskdef resource="net/sf/antcontrib/antlib.xml" />
  <description>
    simple example build file
  </description>
  <property name="post.json.encoded" value=""/>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <property name="post.json" value='{"parameter": [{"name":"foo_param", "value":"123"}]}'/>
    <urlencode name="post.json.encoded" value="${post.json}" />
  </target>

  <target name="run" depends="init"
    description="run jenkins job">
    <post to = "http://jankhost:8080/job/Test/buildWithParameters/"
      verbose="true" failonerror="true">
      <prop name="token" value="1234567"/>
      <prop name="json" value="${post.json.encoded}"/>
    </post>
  </target>
</project>

但是当我运行它时,我得到了 403 错误。 我需要代表您而不是匿名运行任务。我怎样才能做到这一点?如何通过ant用户名和token?

scr

【问题讨论】:

    标签: jenkins ant


    【解决方案1】:

    我对有一个 Ant 任务来执行 HTTP POST 请求感到惊讶/震惊,但看看它的documentation,似乎没有办法设置 HTTP 请求标头,你需要像这样的 Jenkins API 请求这个。

    因此,作为替代方案,您可以尝试在 URL 中设置用户名和 API 令牌 — 我不知道 Ant 任务是否支持,但您可以尝试 http://&lt;user&gt;:&lt;api_token&gt;@jankhost:8080/job/Test/buildWithParameters/

    另一种可能性,根据任何https://&lt;jenkins&gt;/job/&lt;name&gt;/api 页面可能是使用秘密令牌机制:

    另一种选择(但已弃用)是在作业配置中配置“远程触发器构建”部分。然后可以通过在请求中包含一个名为 token 的参数来触发构建或轮询。

    然后,您可以在构建 URL 本身中包含此秘密令牌。但是,由于您启用了安全性,这不会开箱即用 - 您需要安装 Build Token Root 插件,并按照那里的说明进行操作。

    【讨论】:

      猜你喜欢
      • 2015-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-27
      • 1970-01-01
      相关资源
      最近更新 更多