我正在创建一个Jenkins管道(声明性语法),它接受字符串和文件参数。字符串参数已经在声明性语法中可用。但是要在声明性语法中获得文件参数,我们可以选择使用文件参数插件。
下面是Jenkins文件的外观:
pipeline {
agent any
parameters {
base64File 'THEFILE'
}
stages {
stage('Example') {
steps {
withFileParameter('THEFILE') {
sh 'cat $THEFILE'
}
}
}
}
}
当您提供一个文件时,它就会工作,并打印文件的内容。
但是当你不提供一个文件作为参数时,管道应该失败并抱怨它。但是它没有失败。相反,控制台输出的那部分是说:
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Example)
[Pipeline] withFileParameter
[Pipeline] {
[Pipeline] sh
+ cat /var/jenkins_home/workspace/test-file-plugin@tmp/THEFILE18272962853430646509.tmp
[Pipeline] }
[Pipeline] // withFileParameter
[Pipeline] }
[Pipeline] // stage
这意味着,即使您不提供临时文件,也会创建类似THEFILE18272962853430646509.tmp
的临时文件。
根据此documentation:
默认情况下,如果生成没有参数,则会出现错误
那为什么它没有失败呢?
有人能帮我解决这个问题吗?
1条答案
按热度按时间vxqlmq5t1#
不知道为什么它不能正常工作。有多种方法可以解决这个问题,这里有两个解决方案,基于Shell和Groovy。
外壳
“很棒"