Deploy Hugo to S3

What You can deploy the hugo project to s3 directly when you make a push to github repository. this is a guide for that. you are going to use AWS s3, IAM role with s3 access and cloudfront access if you want to use cloudfront in front of s3 bucket. How the github action for your repo will be name: Deploy to S3 on: push: branches: - master jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 with: submodules: true - name: Set up Hugo uses: peaceiris/actions-hugo@v3 with: hugo-version: 'latest' - name: Build the Hugo site run: hugo --verbose --debug - name: Sync S3 bucket uses: jakejarvis/s3-sync-action@master with: args: --delete env: AWS_S3_BUCKET: your-bucket AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} AWS_REGION: 'us-west-1' SOURCE_DIR: 'public' - name: Invalidate CloudFront uses: chetan/invalidate-cloudfront-action@v2 env: DISTRIBUTION: YOUR-CF-DIST-ID PATHS: "/*" AWS_REGION: "us-east-1" AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} If you are not using and CF, ignore the cloudfront invalidation part. and you are good to go. ...

August 31, 2024 · 1 min · 166 words · Me