我试图使用文件参数,这是不是保存在工作区的管道项目的文件,其返回的文件名上传(不是完整的路径,只有文件名)
pipeline {
agent any
parameters {
file(name:'FILE', description: 'upload excel file')
}
stages {
stage('upload') {
steps {
script {
echo "Parameter file: ${params}" // output: Parameter file: [:]
echo "file name: ${FILE}" // file name: uploaded_file.xlsx
def workspace = pwd()
def fullPath = workspace + "\\" + FILE
if (fileExists(fullPath)) {
echo "File exists"
} else {
echo "File does not exist" // this will be run as fullPath has no such file.
}
}
}
}
}
}
只是让你知道params.FILE
是空的,FILE
包含文件名。(没有完整的路径,因为FILE只是文件名)。所以,这是一个很好的解决方案来保存文件在工作区。我知道我们可以使用文件参数插件,但尝试使用文件参数(如果可能的话)。有什么解释readFile
是如何工作的吗?
1条答案
按热度按时间myzjeezk1#
似乎file参数在管道中没有按预期工作,而只是在自由式作业中。您可以在此处找到有关此主题的更多信息:
Jenkins Pipeline Job with file parameter
或此处:
https://issues.jenkins.io/browse/JENKINS-27413
关于readFile,你可以在Jenkins文档中找到描述:
https://www.jenkins.io/doc/pipeline/steps/workflow-basic-steps/#readfile-read-file-from-workspace
简而言之,它是相对于工作区阅读文件的内容。因此,如果上传的文件驻留在工作区根目录中,例如,这应该可以工作: