Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 31 additions & 30 deletions .github/workflows/deploy-notice-board.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,29 +2,22 @@ name: Deploy Notice Board

on:
push:
branches: [master]
branches:
- main
paths:
- '.github/workflows/deploy-notice-board.yml'
- 'workshops/fullstack-aws/projects/02-notice-board/**'
workflow_dispatch: {}

env:
PROJECT_DIR: workshops/fullstack-aws/projects/02-notice-board
- 'workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy/**'

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: '3.12'
defaults:
run:
working-directory: workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy

- uses: actions/setup-node@v4
with:
node-version: 20
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
Expand All @@ -33,33 +26,41 @@ jobs:
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Build Lambda package
working-directory: ${{ env.PROJECT_DIR }}
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Build Lambda zip
run: python build.py

- name: Deploy backend
working-directory: ${{ env.PROJECT_DIR }}
- name: Deploy Lambda code
run: |
aws lambda update-function-code \
--function-name "${{ secrets.LAMBDA_FUNCTION_NAME }}" \
--function-name ${{ secrets.LAMBDA_FUNCTION_NAME }} \
--zip-file fileb://backend/lambda.zip

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '18'

- name: Install frontend dependencies
working-directory: ${{ env.PROJECT_DIR }}/frontend
working-directory: workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy/frontend
run: npm install

- name: Build frontend
working-directory: ${{ env.PROJECT_DIR }}/frontend
working-directory: workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy/frontend
run: npm run build
env:
VITE_API_URL: ${{ secrets.VITE_API_URL }}
run: npm run build

- name: Deploy frontend
working-directory: ${{ env.PROJECT_DIR }}/frontend
run: aws s3 sync dist/ "s3://${{ secrets.S3_BUCKET }}/" --delete

- name: Upload frontend to S3
run: |
aws s3 sync "frontend/dist/" "s3://${{ secrets.S3_BUCKET }}/" --delete

- name: Invalidate CloudFront cache
run: |
aws cloudfront create-invalidation \
--distribution-id "${{ secrets.CF_DISTRIBUTION_ID }}" \
--paths "/*"
--distribution-id ${{ secrets.CLOUDFRONT_DISTRIBUTION_ID }} \
--paths "/*"
60 changes: 60 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: Deploy Notice Board

on:
push:
branches:
- main
paths:
- 'workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy/**'

jobs:
deploy:
runs-on: ubuntu-latest

defaults:
run:
working-directory: workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Build Lambda zip
run: python build.py

- name: Deploy Lambda code
run: |
aws lambda update-function-code \
--function-name ${{ secrets.LAMBDA_FUNCTION_NAME }} \
--zip-file fileb://backend/lambda.zip

- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: '18'

- name: Install frontend dependencies
working-directory: workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy/frontend
run: npm install

- name: Build frontend
working-directory: workshops/fullstack-aws/projects/Group2_Addison_Alex_Marcos_Allen/02-notice-board copy/frontend
run: npm run build
env:
VITE_API_URL: ${{ secrets.VITE_API_URL }}

- name: Upload frontend to S3
run: |
aws s3 sync "frontend/dist/" "s3://${{ secrets.S3_BUCKET }}/" --delete
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
node_modules/
dist/
*.zip
backend/_build/
.terraform/
.terraform.lock.hcl
terraform.tfstate
terraform.tfstate.backup
terraform.tfvars
.env
__pycache__/
venv/

Loading