AWS에서 발급받은 AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
를 github secret 추가하자
리포지토리 Settings
클릭
New repository secret
클릭해서 AWS_ACCESS_KEY_ID
, AWS_SECRET_ACCESS_KEY
만들기
다음과 같이 생성된 것을 확인할 수 있다.
Actions
클릭 > set up a workflow yourself
yml 파일 생성
name: fe-dev //workflow name
on: // 언제 작동할지
push: // push가 이루어지면
branches: // 어떤 브랜치에서?
- main // main 브랜치에서
jobs: // main 브랜치에서 push가 이루어지면 아래 작업들이 이루어짐
build:
runs-on: ubuntu-20.04
steps:
- name: Checkout source code.
uses: actions/checkout@v2
- name: Install dependencies
run: yarn install // install 하는 패키지 명령어
working-directory: ./client // 디렉토리 위치 설정
- name: Build
run: yarn vite build // Build 하는 패키지 명령어
working-directory: ./client // 디렉토리 위치 설정
- name: Sync Bucket
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_EC2_METADATA_DISABLED: true
run: |
aws s3 sync \
--region ap-northeast-2 \
build s3://버킷이름 \
--delete
working-directory: ./client // 디렉토리 위치 설정
다음과 같이 설정해서 커밋을 날리고 설정한 브랜치에 push가 이루어질 때 설정해둔 작업이 자동으로 실행된다. 참고할 점은 main이 아닌 fe-dev와 같은 다른 브랜치에 액션이 작동되게 하고 싶다면
branches:
- fe-dev
다음과 같이 설정해 주면되는데 주의할 점은 yml 파일이 해당 브랜치에 존재해야 action이 작동한다는 점을 주의하자!
나의 경우에는 디폴트 브랜치가 main이라 처음에 fe-dev에 액션을 적용하고 싶어서 했는데 yml파일이 디폴트 브랜치인 main에 위치하고 있어서 액션이 먹통이었다. yml 파일을 생성해서 디폴트 브랜치 pull을 받아와 yml 파일이 액션을 실행시키고자하는 브랜치에 존재하도록 해 주자!
그리고 이제 액션을 지정해 둔 브랜치에 push를 날려주면
다음과 같이 액션 내역들을 확인할 수 있다! 그리고 버킷에 자동 배포 되기 때문에 버킷 엔드 포인트 주소로 가면 적용된 것을 확인할 수 있다!