GitHub Actions can be for more than CI/CD. You can also use them to just simply publish to S3.
GitHub Actions
GitHub can trigger actions on events. This is what drives CI/CD integrations. But it can be used for things that are radically simpler too. I found myself wanting to automatically push changes to a CloudFormation (CF) template to an S3 bucket, since that’s where CF wants to pull templates from. But, as a software guy, I beleive in my soul of souls that everything is code, and code needs to be in source control - which means GitHub, for all practical purposes.
Secrets
First of all, you need to go into your repo settings and store your secrets:
Specifically you need to set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY and if you want to just copy and paste from my main.yaml file you should set AWS_REGION. This is exactly the stuff from configuring AWS CLI tools. That’s the action you will be taking: using AWS CLI to sync files to an S3 bucket.
Actions
In your repo, you need to make a folder that tells GitHub what to do.
In your favorite text editor, open .github/workflows/main.yaml and paste the following:
You can go peek at my working example for my bucket in S3.
Conclusion
This is so trivial and simple, but I had to go find a simple example because all the examples that are easily found are for much more complicated CI/CD behavior. I do owe a shout-out to a great example I found here for publishing a static web site.
Hope this helps someone!
