드디어 github actions다!
나는 master에 push 액션이 일어날때마다 자동으로 AWS S3에 배포가 되도록 설정할 것이다.
먼저 github의 setting으로 들어가준다. (repository의 setting이다.)
Secrets and Variables의 Actions로 들어간다.
이제 AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY를 만들어주면 되는데 AWS IAM 설정에서 최종적으로 만들었던 액세스 키와 비밀 액세스 키를 입력해준다.
이제 Actions 탭으로 이동하여 "set up a workflow yourself"로 이동한 후에 나의 프로젝트에 맞게 설정을 변경해주면 된다!
나의 경우 아래와 같이 작성했다.
name: 3d front Project
# trigger가 되는 브랜치명 및 액션(push)
on:
push:
branches:
- master
# 위 이벤트가 트리거되면 실행할 목록
jobs:
build:
# runner가 실행될 환경 지정
runs-on: ubuntu-latest
# named은 단계별로 실행되는 액션들의 설명을 담은 것으로, 나중에 github action에서 workflow에 표시된다.
# uses 키워드로 action을 불러옴
steps:
- name: Checkout source code. # 레포지토리 체크아웃
uses: actions/checkout@v3
- name: Cache node modules # node modules 캐싱
uses: actions/cache@v3
with:
path: node_modules # 프로젝트의 node_modules가 있는 경로로 설정
key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.OS }}-build-
${{ runner.OS }}-
- name: Install Dependencies
run: npm install --force
- name: Build
run: npm run build
# aws 자격증명
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v1 # AWS 인증을 위한 공식 액션 사용
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_ID }}
aws-region: ap-northeast-2
# s3에 build 파일을 올린다.
- name: Upload to S3
run: |
aws s3 sync ./build s3://${{ secrets.AWS_S3_BUCKET }} \
--delete # 불필요한 파일 삭제
성공!
나도 한번에 된건 아니고 여기 저기 찾으면서 하나씩 수정했다,,! 후 그래도 아주아주 뿌듯하다 희희
배포 성공한 도메인