github action을 이용해 자동배포를 하려면 먼저 s3를 이용해 프로젝트가 배포되어 있어야 한다.
S3로 배포가 되어있다면 IAM사용자로 로그인한다.
이후 사용자를 생성하여 ACCESS_KEY_ID 와 SECRET_ACCESS_KEY 를 저장하도록 하자.
해당 사용자로 ID와 KEY를 받았다면 github의 레포 설정에서 KEY값과 ID값을 넣어주면 된다.
추가로, 배포된 S3버킷의 이름과 지역을 넣어주도록 하자.
이를 다 마치고 난 후 github - action 에서 workflow를 생성하여 세부 설정을 코드로 작성하면 된다.
이후 yml파일에 해당 코드를 넣어주어 배포가 되는지 확인한다.
name: workflow 제목
on:
push:
branches:
- 마스터 or 메인브랜치
pull_request:
branches:
- 마스터 or 메인브랜치
jobs:
run:
runs-on: ubuntu-latest
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
steps:
- uses: actions/checkout@v1
- name: Install dependencies
run: npm install
- name: Build
run: CI='' npm run build
- name: Deploy to S3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_DEFAULT_REGION }}
S3_BUCKET: ${{ secrets.S3_BUCKET }}
run: |
aws s3 sync build/ s3://${{ env.S3_BUCKET }} --delete
'TIL' 카테고리의 다른 글
디자인 패턴과 프로그래밍 패러다임 (0) | 2023.05.18 |
---|---|
Nullish coalescing operator (??) (0) | 2023.04.20 |
[CSS] (SASS | Styeld-Components) 차이와 장단점 (0) | 2023.02.27 |
[React.js] 왜 React인가? ( Vue | Angular | Svelte) (0) | 2023.02.25 |
Git & Github (2) | 2023.02.25 |