I'm putting together a Jenkins pipeline job which will take a file parameter. I can trigger the job and point it at a file however I can't find where the file has ended up (In an ordinary freestyle job it would be in the workspace).
Where has the uploaded file gone? Or do file parameters not currently work with pipelines?
Jenkins provides a File parameter which allows a build to accept a file, to be submitted by the user when scheduling a new build. The file will be placed inside the workspace at the known location after the check-out/update is done so that your build scripts can use this file.
There is currently an issue with pipeline and file parameter (https://issues.jenkins-ci.org/browse/JENKINS-27413).
Solved it the following way:
node { deleteDir() stage("upload") { def inputFile = input message: 'Upload file', parameters: [file(name: 'data.zip')] new hudson.FilePath(new File("$workspace/data.zip")).copyFrom(inputFile) inputFile.delete() } stage("checkout") { echo fileExists('data.zip').toString() } }
I know the solution is not that beautiful because the pipeline gets interrupted for the upload but it works.
Further the "copyFrom" is necessary, because the input stores the "data.zip" in the jobs directory and not in the workspace (don't know why)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With