Gem that can render a static website and upload it to S3 and then invalidate CloudFront.
Used by our website repos.
Render locally:
bundle exec render-website
Deploy locally:
bundle exec deploy-website
Add it to the Gemfile
:
gem 'website-deployer', github: "84codes/website-deployer"
Set up secrets (see naming in YAML below) per website repository. Add the following workflow to the website's actions:
name: Website deployer
on:
workflow_dispatch:
push:
branches:
- main
jobs:
website:
uses: 84codes/website-deployer/.github/workflows/deploy.yml
with:
domain: www.cloudamqp.com
secrets:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
Tagging a commit with [force deploy]
will append --force
to the deploy script, i.e. updating all objects and invalidating all cache.
Build the gem
gem build
Install the built gem
gem install --local ./website-deployer-*
Try it in a website repo
bundle update website-deployer
bundle exec render-website