我是Jenkins的新手,我一直在尝试使用curl来建立自己的工作。除了这个卷曲,我想向Jenkins发送一个文件,该文件应放在我工作区的特定目录中。我一直在谷歌搜索,但似乎无法找到可以引导我解决的明确文档。请指南。我还查看了Google和StackOverflow上的其他一些文章,但无法找到我想要的内容。
curl -X POST JENKINS_URL / job / JOB_NAME / build \ --form file0 = / home / abc.xml \ - 形成json =' {"参数":[{"名称":" /工作区","文件":& #34; file0"}]}'
我也试过这个,似乎没有用。
答案 0 :(得分:2)
来自Jenkins文件参数帮助
指定工作区中相对位置的上传位置 文件将被放置(例如,像" jaxb-ri / data.zip")
上传的文件位置是相对于工作区的。 您需要在脚本中复制/移动它。名称部分是作业的文件参数名称。它不是您文件的名称
这是来自脚本。该作业有一个名为RECORDS_LIST的文件参数。
curl -X POST http://localhost:8080/job/builder/build \
--form attachedfile=@c:/1.txt \
--form json='{"parameter": [{"name":"RECORDS_LIST", "file":"attachedfile"}]}'
你可能
curl -X POST JENKINS_URL/job/JOB_NAME/build \
--form file0=/home/abc.xml \
--form json='{"parameter": [{"name":"YOUR_JOBS_FILE_ARGUMENT_NAME", "file":"file0"}]}'
请注意,jenkins command line api可以处理文件上传
java -jar jenkins-cli.jar -s http://localhost:8080/ build builder \
-p YOUR_JOBS_FILE_ARGUMENT_NAME=/home/abc.xml
[看到OP自己的回答后编辑]
<强>警报强>
curl命令中的文件名路径部分有&#39; @&#39; (注意@之前的路径)。 jenkins cli不需要它。发生这种错误很难跟踪。
答案 1 :(得分:0)
Jayan所说的一切都是正确的。对于像我这样的初学者,我只是让它变得更简单。 的记住:强> 在我们的卷曲网址中@符号非常重要。此外,YOUR_JOBS_FILE_ARGUMENT_NAME是您要存储文件的路径,以及文件的名称和扩展名。如果将abcd.xml放在文件参数的文件位置,它会将abcd.xml保存在工作区的根目录中,如果要将其放在文件夹xyz中,则应将文件位置写入xyz / abcd.xml中在jenkins上配置作业时文件参数的文件位置,并确保在curl中使用相同的文件。因此,如果要将jckins上的abc.xml放到xyz / abcd.xml,请使用命令:
curl -X POST JENKINS_URL/job/JOB_NAME/build \ --form file0=@/home/abc.xml \ --form json='{"parameter": [{"name":"xyz/abcd.xml", "file":"file0"}]}'
这是非常基本的东西,但这是我偶然发现的地方。