在 Jenkins 管道中使用 s3upload 上传多个文件

ras*_*cmb 4 amazon-s3 jenkins jenkins-plugins jenkins-pipeline

s3Upload我们可以使用Jenkins 文件将多个文件(不是整个文件夹)上传到 S3 吗?

我试图*.rpm使用该功能将根目录中的所有 rpm 文件( )上传到 S3 s3Upload

Pas*_*Jay 6

您可以使用以下命令在一行中上传所有文件。

  s3Upload(bucket:"my-bucket", path:'path/to/targetFolder/', includePathPattern:'**/*.svg', workingDir:'dist')
Run Code Online (Sandbox Code Playgroud)

进一步解释一下,您可以根据以下两种可能性创建自己的过滤;

1.包含某个扩展名的所有文件。

s3Upload(bucket:"my-bucket", path:'path/to/targetFolder/', includePathPattern:'**/*.svg', workingDir:'dist')
Run Code Online (Sandbox Code Playgroud)

2.包括除某些文件扩展名之外的所有文件。

s3Upload(bucket:"my-bucket", path:'path/to/targetFolder/', includePathPattern:'**/*', workingDir:'dist', excludePathPattern:'**/*.svg')
Run Code Online (Sandbox Code Playgroud)

参考: https: //github.com/jenkinsci/pipeline-aws-plugin(在s3Upload下检查)


ras*_*cmb 5

findFiles 解决了这个问题。下面是用于相同用途的片段。

files = findFiles(glob: '*.rpm')

  files.each { 
      println "RPM:  ${it}"
      withAWS(credentials: '****************'){
       s3Upload(file:"${it}", bucket:'rpm-repo', path:"${bucket_path}")
        }
    }
Run Code Online (Sandbox Code Playgroud)