Skip to content

S3 Copy to specific destination

Actions
-
v0.3.0
Latest
Star (2)

GitHub Action to aws s3 cp a file to an S3 Bucket 🔄

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.

Usage

workflow.yml Example

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 }}

Required Environment Variables

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

Required Secret Variables

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

License

This project is distributed under the MIT license.

S3 Copy to specific destination is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.

About

-
v0.3.0
Latest

S3 Copy to specific destination is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.