Jenkins管道:如何使用s3插件上传工件

che*_*huk 13 amazon-s3 jenkins jenkins-pipeline

我试图在成功构建后将工件上传到s3存储桶,但是我找不到任何可以在阶段/节点块中实现的工作示例.

任何想法(安装s3插件,jenkins v2.32)?

node {
  sh 'echo ""> 1.jar'
  archiveArtifacts artifacts: '1.jar', fingerprint: true
  // upload to s3 bucket ???
}    
Run Code Online (Sandbox Code Playgroud)

Chr*_*Orr 9

查看Jenkins网站上的Pipeline Steps文档,它显示了Pipeline AWS插件提供了一个s3Upload步骤.

  • 您能举例说明如何使用它将当前目录中的本地文件上传到存储桶的根目录吗? (4认同)

aCi*_*CiD 7

详细步骤:

  1. 安装管道AWS插件。转到管理Jenkins->管理插件->可用选项卡->通过“ Pipeline AWS”过滤。安装插件。

  2. 根据您的环境添加凭据。这里的例子:

    Jenkins>凭证>系统>全局凭证(不受限制)->添加

    种类= AWS凭证并添加您的AWS凭证

    注意ID

  3. 然后在您的Pipeline项目中(类似于我使用的代码)

    node {
    
        stage('Upload') {
    
            dir('path/to/your/project/workspace'){
    
                pwd(); //Log current directory
    
                withAWS(region:'yourS3Region',credentials:'yourIDfromStep2') {
    
                     def identity=awsIdentity();//Log AWS credentials
    
                    // Upload files from working directory 'dist' in your project workspace
                    s3Upload(bucket:"yourBucketName", workingDir:'dist', includePathPattern:'**/*');
                }
    
            };
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)


Eri*_*kWe 6

尝试这个:

s3Upload(file:'file.txt', bucket:'my-bucket', path:'path/to/target/file.txt')
Run Code Online (Sandbox Code Playgroud)

我认为显示直接插件文档URL更容易。您可以在此处找到插件文档。

当你正在寻找一种方式将文件上传到S3,这里有一些例子。