【问题标题】:Jenkins Pipeline Stash Include Single FileJenkins 管道存储包括单个文件
【发布时间】: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


    【解决方案1】:

    尝试仅使用“File.jar”。我遇到了类似的问题并将文件名放在“包含”中,因为 Jenkins 已经在目录中并且它可以工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-12
      • 2019-01-14
      • 1970-01-01
      • 2020-01-14
      相关资源
      最近更新 更多