我已经创建了一个管道从本地上传文件到代理。上传的文件名是在Stashed File参数中设置的。但是,我想使用用户上传的文件名。
my parameter
我的管道脚本
import java.text.SimpleDateFormat
parameters {
stashedFile(name: 'inputFile', description: 'upload file')
string(name: 'filename',defaultValue: 'uploadFile', description: 'filename')
}
node('test') {
stage('upload file') {
unstash 'inputFile'
script {
def fileName = params.filename
if (fileName == "uploadFile"){
def now = java.time.LocalDateTime.now()
fileName = fileName + "${now}"
}
def status = sh(script: "mv ./inputFile /tmp/${fileName}", returnStatus: true)
if (status != 0) {
currentBuild.result = 'FAILURE'
error "can't upload file"
}
}
}
}
字符串
该脚本工作,但我想删除字符串参数,而不是使用上传文件的文件名。
1条答案
按热度按时间q1qsirdb1#
根据文档,输入文件名将存储在格式为
<parameter_name>_FILENAME
的环境变量中。基于此,在这种情况下,该值将存在于名为inputFile_FILENAME
的变量中,尽管它可能全部大写。因此,为了避免混淆,如果将参数重命名为类似INPUT_FILE
的内容,则文件名将被存储在环境变量INPUT_FILE_FILENAME
中。