티스토리 뷰

목차


    반응형

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

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

     

    깃허브 액션즈로 들어가서

    아래에 보이는 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
    반응형