2017-03-03 73 views
1

无法运行詹金斯工作詹金斯我在詹金斯的一些工作,我需要使用Ant使用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错误。 我需要代表您运行任务,而不是匿名运行。我怎样才能做到这一点?如何通过蚂蚁的用户名和令牌?

scr

回答

0

我很惊讶/震惊的是有一个Ant任务来完成HTTP POST请求,但看着它documentation,似乎没有办法来设置HTTP请求头,你就需要一个Jenkins API请求是这样的。

所以作为替代,你可以尝试设置的用户名和API令牌的URL - 我不知道Ant任务是否支持这一点,但你可以尝试http://<user>:<api_token>@jankhost:8080/job/Test/buildWithParameters/

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

另一种替代方案(但不推荐)是在作业配置中配置'远程触发器构建'部分。然后可以通过在请求中包含一个名为token的参数来触发构建或轮询。

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