류림스 공간

[항해99 86일차] 2022.05.31 TIL (깃허브 액션 무중단 배포 s3) 본문

TIL/2022 TIL

[항해99 86일차] 2022.05.31 TIL (깃허브 액션 무중단 배포 s3)

ryurim 2022. 5. 31. 20:04
반응형

오늘은 무중단 배포를 설정했다 !

처음엔 .. 어려워보였는데 막상 하고나니 별거 없었다.ㅎㅎ

 

깃허브 액션즈로 들어가서

아래에 보이는 set up a workflow yourself를 클릭해줍니다. (main이나 master브랜치에서 해줘야된다 !! dev브랜치는 안됨 ㅠㅠ)

이렇게 커밋 뉴 파일을 해준다.

그렇다면 main.yml파일이 생긴다 !!

 

이제 aws s3로 넘어가서 IAM 권한을 설정해줄 차례다 !!

IAM > 사용자 > 사용자 추가 > 

스텝 1 사용자 세부 정보 설정 

사용자 이름은 영어로

AWS 자격 증명 유형 선택은 첫번째 것 선택 후 다음 권한으로 이동

스텝 2 기존 정책 직접 연결

정책 필터 s3검색 후 AmazonS3FullAccess 선택 후 다음 권한으로 이동

스탭 3, 4, 5는 그냥 이동한다.

그리고 나면 액세스 키를 발급해준다 !!

csv파일로 저장한 뒤 깃허브 세팅 탭으로 이동!

 

Secrets > 뉴 레포지토리 시크릿 클릭하여 csv로 발급받은 키를 입력해준다.

 

이렇게 입력을 해준다.

그렇다면 설정 완료!

이제 main.yml을 수정할 차례

name: React build
on:
  push: # master Branch에서 push 이벤트가 일어났을 때만 실행
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout source code. # 레포지토리 체크아웃
        uses: actions/checkout@v2

      - name: Cache node modules # node modules 캐싱
        uses: actions/cache@v1
        with:
          path: node_modules
          key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
          restore-keys: |
            ${{ runner.OS }}-build-
            ${{ runner.OS }}-

      - name: Generate Environment Variables File for Production
        run: |
          echo "REACT_APP_KAKAO_KEY=$REACT_APP_KAKAO_KEY" >> .env.production
          echo "REACT_APP_KAKAO_LOGIN=$REACT_APP_KAKAO_LOGIN" >> .env.production
          echo "REACT_APP_KAKAO_ID=$REACT_APP_KAKAO_ID" >> .env.production
          echo "REACT_APP_GOOGLE_ID=$REACT_APP_GOOGLE_ID" >> .env.production

        env:
          REACT_APP_KAKAO_KEY: ${{ secrets.REACT_APP_KAKAO_KEY }}
          REACT_APP_KAKAO_LOGIN: ${{ secrets.REACT_APP_KAKAO_LOGIN }}
          REACT_APP_KAKAO_ID: ${{ secrets.REACT_APP_KAKAO_ID }}
          REACT_APP_GOOGLE_ID: ${{ secrets.REACT_APP_GOOGLE_ID }}

      - name: Install Dependencies # 의존 파일 설치
        run: yarn install

      - name: Build # React Build
        run: yarn build
        env:
          CI: ""

      - name: Deploy # S3에 배포하기
        env:
          AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
          AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
        run: |
          aws s3 cp --recursive --region ap-northeast-2 build s3:// /*s3버킷 이름*/

이렇게 수정해주면 이제 main에 push 할 때마다 자동으로 배포된다아~!

예에 엄청 편하구만 이거

728x90
반응형
Comments