Skip to content

GitHub Action to `aws s3 cp` a file to a remote S3 bucket, to a specific destination in that bucket.

License

Notifications You must be signed in to change notification settings

luke-m/s3-cp-action

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

GitHub Action to `aws s3 cp` a file to a remote S3 bucket, to a specific destination in that bucket.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Dockerfile 70.2%
  • Shell 29.8%