How to upload file from command line as file parameter in jenkins

command-line-interface, curl, jenkins

Solution

This is described in the Jenkins Remote access API page:

curl http://jenkins/job/$JOB_NAME/build -F file0=@PATH_TO_FILE -F json='{"parameter": [{"name":"FILE_LOCATION_AS_SET_IN_JENKINS", "file":"file0"}]}'

Note that you need to use the URL /build instead of /buildWithParameters

Problem

I am triggering builds with string parameters from the command line in Jenkins with: ``` curl http://jenkins:8080/job/Build/buildWithParameters?PARAM=value&token=token ``` I now want to trigger a build with a file as a file parameter from the command line. For example if my project builds main.c then I would like to be able to trigger a build and upload my main.c from the command line. Is this possible?

Original source

Related problems