This is a customized version of the s3-sync-action that uses the vanilla AWS CLI to sync a directory (either from your repository or generated during your workflow) with a remote S3 bucket. It also runs the command: yarn run build to build the docusaurs site for deployment.
Place in a .yml
file such as this one in your .github/workflows
folder. Refer to the documentation on workflow YAML syntax here.
name: CI
on: [push]
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@master
- uses: brockneedscoffee/s3-docusaurus-sync-action@master
env:
AWS_DEFAULT_REGION: "us-east-1"
AWS_S3_BUCKET: ${{ secrets.AWS_S3_BUCKET }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
The following settings must be passed as environment variables as shown in the example. Sensitive information, especially AWS_ACCESS_KEY_ID
and AWS_SECRET_ACCESS_KEY
, should be set as encrypted secrets — otherwise, they'll be public to anyone browsing your repository's source code and CI logs.
Key | Value | Suggested Type | Required | Notes |
---|---|---|---|---|
AWS_DEFAULT_REGION | The region where you created your bucket. Set to Full list of regions here. | env |
Yes | |
AWS_S3_BUCKET | The bucket name you want to publish the site to | env or secret env |
Yes | This does not have to be in the secrets but it makes it easier to manage |
AWS_ACCESS_KEY_ID | Your AWS Access Key. More info here. | secret env |
Yes | |
AWS_SECRET_ACCESS_KEY | Your AWS Secret Access Key. More info here. | secret env |
Yes |