개발/클라우드
react S3 - EC2 github action-aws deploy CI/CD main.yml
이수민
2024. 1. 20. 22:34
프로젝트 중 했던 CI/CD이다. IAM 과정부터 세세히 정리를 하려고 했으나, aws 계정이 만료되는 바람에 yml만이라도 아쉬운대로 올려보겠다.
name: CI/CD Workflow
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
env:
S3_BUCKET_NAME: [S3 버킷 이름]
APP_NAME: [APP_NAME]
GROUP_NAME: [GROUP_NAME]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Upload to S3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.SECRET_ACCESS_KEY }}
run: |
aws s3 cp --region ap-northeast-2 ./build-fe.zip s3://$S3_BUCKET_NAME/build-fe.zip
- name: Deploy
run: |
aws deploy create-deployment \
--application-name ${{ env.APP_NAME }} \
--deployment-config-name CodeDeployDefault.AllAtOnce \
--deployment-group-name ${{ env.GROUP_NAME }} \
--s3-location bucket=$S3_BUCKET_NAME,key=build-fe.zip,bundleType=zip
- name: Set Script Permissions
run: chmod +x ./deploy.sh
- name: Execute Deploy Script
run: ./deploy.sh
main.yml
version: 0.0
os: linux
files:
- source: /
destination: /home/ubuntu/deploy-fe
overwrite: yes
permissions:
- object: /home/ubuntu/deploy-fe
owner: ubuntu
group: ubuntu
mode: 755
hooks:
AfterInstall:
- location: /home/ubuntu/deploy-fe/deploy.sh
timeout: 300
runas: root
appspec.yml
#!/usr/bin/env bash
# 자유롭게 작성
deploy.sh