name: Deploy to Cloudflare R2 on: push: branches: - main workflow_dispatch: jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Setup Hugo uses: peaceiris/actions-hugo@v2 with: hugo-version: 'latest' extended: true - name: Build run: hugo --config config-prod.toml --minify - name: Configure AWS CLI for Cloudflare R2 uses: aws-actions/configure-aws-credentials@v2 with: aws-access-key-id: ${{ secrets.R2_ACCESS_KEY_ID }} aws-secret-access-key: ${{ secrets.R2_SECRET_ACCESS_KEY }} aws-region: auto - name: Deploy to Cloudflare R2 run: | aws s3 sync ./public/ s3://${{ secrets.BUCKET_NAME }}/ \ --endpoint-url=https://${{ secrets.CLOUDFLARE_ACCOUNT_ID }}.r2.cloudflarestorage.com \ --acl public-read \ --delete - name: Purge Cloudflare Cache uses: jakejarvis/cloudflare-purge-action@v0.3.0 env: CLOUDFLARE_ZONE: ${{ secrets.CLOUDFLARE_ZONE }} CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}