2016-09-15 7 views
2

私はJenkinsfileでJenkins 2.0パイプラインでS3 pluginを使用しようとしています。残念ながら、パイプライン構文ヘルパーは完全ではないようです。資格情報とバケットが不足しているとして、もちろん、これは、十分ではありませんオフS3 Jenkinsパイプラインでアーティファクトをコピーする

step([$class: 'S3CopyArtifact', buildSelector: [$class: 'StatusBuildSelector', stable: true], excludeFilter: '', filter: 'deploy/*.zip', flatten: false, optional: false, projectName: 'my/project/with/folders', target: '/my/directory/']) 

は、私は、次のコードを得ました。さらに、このプラグインはFoldersプラグインで正しく動作しないようです。

誰もがこれに関するヒントを持っていますか?

+1

実際にパイプラインの構文ヘルパーが完了しているが、私はボットS3CopyArtifactとS3BucketPublisherを持っていた:また、あなたのオブジェクトにメタデータタグを追加したい場合は あなたはuserMetaData列を追加することができます。使用するものは* S3BucketPublisher *です! – trey

答えて

6

私はあなたの元の声明に同意します。スクリプトの生成はああそうです悲しいです。 S3BucketPublisherが選択されていても、それ以上続けることはできません。 下のスニペットを参照してください。ここでは、すでにシステム構成にプロファイルが作成されているものとします。 s3Upload(file:'someFolder', bucket:'my-bucket', path:'/path/to/targetFolder/')

djsd123の例では、より高度なユースケースのために完璧に動作します:これは次のようにPipeline AWS Pluginでサポートされているシンプルなユースケースについては

stage("publish to s3") { 
    step([ 
     $class: 'S3BucketPublisher', 
     entries: [[ 
      sourceFile: 'mybinaryFile', 
      bucket: 'GoBinaries', 
      selectedRegion: 'eu-west-1', 
      noUploadOnFailure: true, 
      managedArtifacts: true, 
      flatten: true, 
      showDirectlyInBrowser: true, 
      keepForever: true, 
     ]], 
     profileName: 'myprofile', 
     dontWaitForConcurrentBuildCompletion: false, 
    ]) 
} 
+0

同じ方法でフォルダ全体をアップロードすることは可能でしょうか? –

+0

同じことをやろうとしていますが、まだエラーがあります。私はあなたに投稿してくれるでしょう –

4

profileName: 'myprofile', 
    dontWaitForConcurrentBuildCompletion: false, 
    userMetadata: [[ key: 'git_branch', value: "${env.BRANCH_NAME}"], 
        [ key: 'build_number', value: "${env.BUILD_NUMBER}"] 
    ], 
+0

私は 'sh'ブロックでAWS CLIを使いましたが、これは哲学のモチーフであり、私はこのプラグインに徐々に切り替わります。ありがとう! – trey

+0

このようなファイルをpublic-read aclにする方法はありますか? –

関連する問題