name: Release the website
on:
  push:
    branches:
      - main
jobs:
  build_and_release:
    runs-on: ubuntu-latest
    steps:
      - name: Set up git repository
        uses: actions/checkout@v3
      - name: Print dependency versions
        uses: addnab/docker-run-action@v3
        with:
          image: ghcr.io/hendricius/the-sourdough-framework:latest
          options: -v ${{ github.workspace }}:/app
          run: |
            cd /app/book
            make show_tools_version
      - name: Print build variables
        uses: addnab/docker-run-action@v3
        with:
          image: ghcr.io/hendricius/the-sourdough-framework:latest
          options: -v ${{ github.workspace }}:/app
          run: |
            cd /app/book
            make printvars
      - name: Bake the book
        uses: addnab/docker-run-action@v3
        with:
          image: ghcr.io/hendricius/the-sourdough-framework:latest
          options: -v ${{ github.workspace }}:/app
          run: |
            cd /app/book
            make website
      - name: Release baked website to S3
        uses: shallwefootball/s3-upload-action@master
        with:
          aws_key_id: ${{ secrets.AWS_KEY_ID }}
          aws_secret_access_key: ${{ secrets.AWS_SECRET_ACCESS_KEY}}
          aws_bucket: ${{ secrets.AWS_BUCKET_WEBSITE }}
          source_dir: website/static_website_html
          destination_dir: static_html_root
      - name: Invalidate Cloudfront website cache
        uses: chetan/invalidate-cloudfront-action@v2
        env:
          DISTRIBUTION: ${{ secrets.CLOUDFRONT_DISTRIBUTION_WEBSITE }}
          PATHS: "/*"
          AWS_REGION: "us-east-1"
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
