我在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用户名和令牌?
答案 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插件,并按照其中的说明进行操作。