无法使用蚂蚁运行jenkins job jenkins

时间:2017-03-03 09:01:02

标签: jenkins ant

我在jenkins工作,我需要使用ant

启动它
ant run

在build.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用户名和令牌?

scr

1 个答案:

答案 0 :(得分:0)

我感到惊讶/恐惧的是执行HTTP POST请求的Ant任务,但是查看其documentation,似乎无法设置HTTP请求标题,你需要这样的Jenkins API请求。

作为替代方案,您可以尝试在网址中设置用户名和API令牌 - 我不知道Ant任务是否支持此功能,但您可以尝试http://<user>:<api_token>@jankhost:8080/job/Test/buildWithParameters/

根据任何https://<jenkins>/job/<name>/api页面的另一种可能性可能是使用秘密令牌机制:

  

另一种替代方案(但已弃用)是远程配置&#39;触发器构建&#39;作业配置中的部分。然后,可以通过在请求中包含名为token的参数来触发构建或轮询。

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