【发布时间】:2022-12-12 12:01:04
【问题描述】:
我正在尝试将单个文件包含到 Jenkins/Cloudbees 管道中的存储中。以我的理解,这应该像这样工作:
stage('Stash File') {
steps {
stash includes: 'File.jar', name: 'File'
}
}
然而,由于某种原因它没有,当它在 Jenkins 中运行时,该步骤失败,但没有任何错误消息,如下所示:
[Pipeline] stage
[Pipeline] { (Stash File)
[Pipeline] node
Running on Jenkins in /var/lib/cloudbees-core-cm/workspace/AutoDeploy/APPS/File/AutoDeploy
[Pipeline] {
[Pipeline] stash
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (Copy File to target folder)
Stage "Copy File to target folder" skipped due to earlier failure(s)
我添加了一个 sh "ls -la" 以确定该文件在当前文件夹中,看起来确实如此。该命令的输出是:
[Pipeline] sh
+ ls -la
total 12
drwxr-xr-x 3 cloudbees-core-cm cloudbees-core-cm 4096 27. Oct 12:46 .
drwxr-xr-x 4 cloudbees-core-cm cloudbees-core-cm 4096 27. Oct 12:46 ..
drwxr-xr-x 2 cloudbees-core-cm cloudbees-core-cm 4096 27. Oct 12:46 File.jar
如果我改为使用此语法,它会起作用,并且由于这是文件夹中的唯一文件,所以该文件被添加到存储中:
stash includes: '**', name: 'File'
但是,我真的更愿意按名称指定我想要隐藏的文件。这是不可能的事吗?
这是我尝试过的初始语法的变体,但都没有成功:
stash includes: '**/File.jar', name: 'File'
stash includes: '/File.jar', name: 'File'
stash includes: '.File.jar', name: 'File'
stash includes: '***/File.jar', name: 'File'
stash includes: '*/File.jar', name: 'File'
tl:dr:我在这里做错了什么?在存储中包含单个文件的正确语法是什么?
【问题讨论】:
标签: jenkins-pipeline cloudbees