https://github.com/envato/aws-s3-sync-buildkite-plugin
https://github.com/envato/aws-s3-sync-buildkite-plugin
aws-s3 buildkite-plugin
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/envato/aws-s3-sync-buildkite-plugin
- Owner: envato
- License: mit
- Created: 2019-11-05T22:31:47.000Z (almost 6 years ago)
- Default Branch: main
- Last Pushed: 2022-09-06T04:39:54.000Z (about 3 years ago)
- Last Synced: 2025-08-06T10:21:55.710Z (2 months ago)
- Topics: aws-s3, buildkite-plugin
- Language: Shell
- Homepage: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/sync.html
- Size: 31.3 KB
- Stars: 7
- Watchers: 60
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# AWS S3 Sync Buildkite Plugin
[](https://github.com/envato/aws-s3-sync-buildkite-plugin/actions/workflows/tests.yml)
[](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](https://buildkite.com/docs/agent/v3/hooks#job-lifecycle-hooks).
```yml
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](https://buildkite.com/docs/agent/v3/hooks#job-lifecycle-hooks).
```yml
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:
```sh
docker-compose run --rm tests
```To run the [Buildkite Plugin Linter]:
```sh
docker-compose run --rm lint
```[Buildkite plugin]: https://buildkite.com/docs/agent/v3/plugins
[Buildkite Plugin Linter]: https://github.com/buildkite-plugins/buildkite-plugin-linter