Disclaimer: This action is different to tpaschalis/s3-cp-action (the one it's forked from) in that it allows you to specify a destination in the bucket to copy the file to. I needed this functionality in a project so I quickly forked and adjusted the action. I still need to update the README to reflect that change. For now, please just check out the source code to figure out how this works :D
This simple action uses the vanilla AWS CLI to sync a directory (either from your repository or generated during your workflow) with a remote S3 bucket.
Place in a .yml
file such as this one in your .github/workflows
folder. Refer to the documentation on workflow YAML syntax here.
name: Sync Bucket
on: push
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- name: Upload binary to S3 bucket
uses: tpaschalis/s3-sync-action@master
with:
args: --acl public-read
env:
FILE: ./gh-actions-golang
AWS_REGION: 'eu-central-1'
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_ACCESS_KEY_SECRET }}
Key | Value | Type | Required |
---|---|---|---|
FILE |
The local file you wish to upload to S3. For example, ./myfile.txt . |
env |
Yes |
AWS_REGION |
The region where you created your bucket in. For example, eu-central-1 . Full list of regions here. |
env |
Yes |
The following variables should be added as "secrets" in the action's configuration.
Key | Value | Type | Required |
---|---|---|---|
AWS_S3_BUCKET |
The name of the bucket you're syncing to. For example, golang-deployment-bucket . |
secret |
Yes |
AWS_ACCESS_KEY_ID |
Your AWS Access Key. More info here. | secret |
Yes |
AWS_SECRET_ACCESS_KEY |
Your AWS Secret Access Key. More info here. | secret |
Yes |
This project is distributed under the MIT license.