Skip to content

envato/aws-s3-sync-buildkite-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AWS S3 Sync Buildkite Plugin

tests MIT License

A Buildkite plugin that syncs files to the AWS Simple Storage Service (S3). It automatically detects when the local path is the source or destination, then syncs after or before the step command respectively.

Example

Sync local files source with s3 destination. This is run after the main command in a post-command job hook.

steps:
  - label: "Generate files and push to S3"
    command: bin/command-that-generates-files
    plugins:
      - envato/aws-s3-sync#v0.5.0:
          source: local-directory/
          destination: s3://example-bucket/directory/

Sync s3 files source with a local path destination. This is run before the main command in a pre-command job hook.

steps:
  - label: "Pull files from S3 and execute task"
    command: bin/command-that-uses-files
    plugins:
      - envato/aws-s3-sync#v0.5.0:
          source: s3://example-bucket/directory/
          destination: local-directory/

Configuration

source

The source location containing the local path or the s3 uri.

destination

The destination location containing the local path or the s3 uri.

delete

Defaults to false

Files that exist in the destination but not in the source are deleted during sync.

follow-symlinks

Defaults to true

Symbolic links are followed only when uploading to S3 from the local filesystem.

cache-control

Defaults to null

Specify the cache control metadata value for all syncable objects

endpoint-url

Defaults to null

Optionally specify an s3 endpoint URL to override the default. This option can be used to integrate with services that provide a s3 compatible api like CloudFlare R2.

Development

To run the tests:

docker-compose run --rm tests

To run the Buildkite Plugin Linter:

docker-compose run --rm lint