Jase's AWS Static Website Deployment

Hello! I'm Jase. This document outlines the continuous integration and delivery (CI/CD) pipeline I established to host this site using GitHub for version control and AWS Simple Storage Service (S3) for serving the content.

1. Project Source Control (GitHub)

The foundation of the deployment pipeline starts with version control. My process ensures all code updates are managed efficiently and transparently:

2. Static Website Hosting (AWS S3)

The website content is hosted on Amazon S3, configured specifically for static website hosting:

aws s3 sync . s3://my-aws-website-bucket --acl public-read

3. Automated CI/CD (GitHub Actions)

To enable true Continuous Deployment, I implemented a GitHub Actions workflow. This ensures that every approved code push is automatically deployed to AWS without manual intervention.

The workflow authenticates with AWS using a dedicated **Access Key ID** and **Secret Access Key** stored securely as GitHub Secrets. The target region for all AWS operations is **Europe (London), `eu-west-2`**.

name: Deploy to AWS S3 Static Host

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      # Step 1: Check out the repository code
      - name: Checkout Code
        uses: actions/checkout@v4

      # Step 2: Configure AWS Credentials
      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v4
        with:
          # Uses GitHub Secrets for secure authentication
          aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
          aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
          # Set region to Europe (London)
          aws-region: eu-west-2

      # Step 3: Synchronize files with the S3 bucket
      - name: Deploy Static Content to S3
        run: aws s3 sync . s3://my-aws-website-bucket --acl public-read

Deployment Status

This website is currently live and accessible via my custom domain: jasoncv.click

Thanks for reviewing my deployment setup!